//===-- M68kFixupKinds.h - M68k Specific Fixup Entries ----------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// This file contains M68k specific fixup entries. /// //===----------------------------------------------------------------------===// #ifndef LLVM_LIB_TARGET_M68k_MCTARGETDESC_M68kFIXUPKINDS_H #define LLVM_LIB_TARGET_M68k_MCTARGETDESC_M68kFIXUPKINDS_H #include "llvm/MC/MCFixup.h" namespace llvm { static inline unsigned getFixupKindLog2Size(unsigned Kind) { switch (Kind) { case FK_PCRel_1: case FK_SecRel_1: case FK_Data_1: return 0; case FK_PCRel_2: case FK_SecRel_2: case FK_Data_2: return 1; case FK_PCRel_4: case FK_SecRel_4: case FK_Data_4: return 2; } llvm_unreachable("invalid fixup kind!"); } static inline MCFixupKind getFixupForSize(unsigned Size, bool isPCRel) { switch (Size) { case 8: return isPCRel ? FK_PCRel_1 : FK_Data_1; case 16: return isPCRel ? FK_PCRel_2 : FK_Data_2; case 32: return isPCRel ? FK_PCRel_4 : FK_Data_4; case 64: return isPCRel ? FK_PCRel_8 : FK_Data_8; } llvm_unreachable("Invalid generic fixup size!"); } } // namespace llvm #endif // LLVM_LIB_TARGET_M68k_MCTARGETDESC_M68kFIXUPKINDS_H