16bf22ae4SJim Lin //===-- M68kFixupKinds.h - M68k Specific Fixup Entries ----------*- C++ -*-===// 28dddc152SMin-Yih Hsu // 38dddc152SMin-Yih Hsu // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 48dddc152SMin-Yih Hsu // See https://llvm.org/LICENSE.txt for license information. 58dddc152SMin-Yih Hsu // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 68dddc152SMin-Yih Hsu // 78dddc152SMin-Yih Hsu //===----------------------------------------------------------------------===// 88dddc152SMin-Yih Hsu /// 98dddc152SMin-Yih Hsu /// \file 108dddc152SMin-Yih Hsu /// This file contains M68k specific fixup entries. 118dddc152SMin-Yih Hsu /// 128dddc152SMin-Yih Hsu //===----------------------------------------------------------------------===// 138dddc152SMin-Yih Hsu 148dddc152SMin-Yih Hsu #ifndef LLVM_LIB_TARGET_M68k_MCTARGETDESC_M68kFIXUPKINDS_H 158dddc152SMin-Yih Hsu #define LLVM_LIB_TARGET_M68k_MCTARGETDESC_M68kFIXUPKINDS_H 168dddc152SMin-Yih Hsu 178dddc152SMin-Yih Hsu #include "llvm/MC/MCFixup.h" 188dddc152SMin-Yih Hsu 198dddc152SMin-Yih Hsu namespace llvm { getFixupKindLog2Size(unsigned Kind)208dddc152SMin-Yih Hsustatic inline unsigned getFixupKindLog2Size(unsigned Kind) { 218dddc152SMin-Yih Hsu switch (Kind) { 228dddc152SMin-Yih Hsu case FK_PCRel_1: 238dddc152SMin-Yih Hsu case FK_SecRel_1: 248dddc152SMin-Yih Hsu case FK_Data_1: 258dddc152SMin-Yih Hsu return 0; 268dddc152SMin-Yih Hsu case FK_PCRel_2: 278dddc152SMin-Yih Hsu case FK_SecRel_2: 288dddc152SMin-Yih Hsu case FK_Data_2: 298dddc152SMin-Yih Hsu return 1; 308dddc152SMin-Yih Hsu case FK_PCRel_4: 318dddc152SMin-Yih Hsu case FK_SecRel_4: 328dddc152SMin-Yih Hsu case FK_Data_4: 338dddc152SMin-Yih Hsu return 2; 348dddc152SMin-Yih Hsu } 358dddc152SMin-Yih Hsu llvm_unreachable("invalid fixup kind!"); 368dddc152SMin-Yih Hsu } 378dddc152SMin-Yih Hsu getFixupForSize(unsigned Size,bool isPCRel)388dddc152SMin-Yih Hsustatic inline MCFixupKind getFixupForSize(unsigned Size, bool isPCRel) { 398dddc152SMin-Yih Hsu switch (Size) { 408dddc152SMin-Yih Hsu case 8: 418dddc152SMin-Yih Hsu return isPCRel ? FK_PCRel_1 : FK_Data_1; 428dddc152SMin-Yih Hsu case 16: 438dddc152SMin-Yih Hsu return isPCRel ? FK_PCRel_2 : FK_Data_2; 448dddc152SMin-Yih Hsu case 32: 458dddc152SMin-Yih Hsu return isPCRel ? FK_PCRel_4 : FK_Data_4; 468dddc152SMin-Yih Hsu case 64: 478dddc152SMin-Yih Hsu return isPCRel ? FK_PCRel_8 : FK_Data_8; 488dddc152SMin-Yih Hsu } 498dddc152SMin-Yih Hsu llvm_unreachable("Invalid generic fixup size!"); 508dddc152SMin-Yih Hsu } 518dddc152SMin-Yih Hsu 528dddc152SMin-Yih Hsu } // namespace llvm 538dddc152SMin-Yih Hsu 54*4a7890c6SJim Lin #endif // LLVM_LIB_TARGET_M68k_MCTARGETDESC_M68kFIXUPKINDS_H 55