1 //===- ARMRelocations.h - ARM Code Relocations ------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file defines the ARM target-specific relocation types. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef ARMRELOCATIONS_H 15 #define ARMRELOCATIONS_H 16 17 #include "llvm/CodeGen/MachineRelocation.h" 18 19 namespace llvm { 20 namespace ARM { 21 enum RelocationType { 22 // reloc_arm_absolute - Absolute relocation, just add the relocated value 23 // to the value already in memory. 24 reloc_arm_absolute, 25 26 // reloc_arm_relative - PC relative relocation, add the relocated value to 27 // the value already in memory, after we adjust it for where the PC is. 28 reloc_arm_relative, 29 30 // reloc_arm_cp_entry - PC relative relocation for constpool_entry's whose 31 // addresses are kept locally in a map. 32 reloc_arm_cp_entry, 33 34 // reloc_arm_vfp_cp_entry - Same as reloc_arm_cp_entry except the offset 35 // should be divided by 4. 36 reloc_arm_vfp_cp_entry, 37 38 // reloc_arm_machine_cp_entry - Relocation of a ARM machine constantpool 39 // entry. 40 reloc_arm_machine_cp_entry, 41 42 // reloc_arm_jt_base - PC relative relocation for jump tables whose 43 // addresses are kept locally in a map. 44 reloc_arm_jt_base, 45 46 // reloc_arm_pic_jt - PIC jump table entry relocation: dest bb - jt base. 47 reloc_arm_pic_jt, 48 49 // reloc_arm_branch - Branch address relocation. 50 reloc_arm_branch, 51 52 // reloc_arm_movt - MOVT immediate relocation. 53 reloc_arm_movt, 54 55 // reloc_arm_movw - MOVW immediate relocation. 56 reloc_arm_movw 57 }; 58 } 59 } 60 61 #endif 62 63