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_so_imm - Same as reloc_arm_cp_entry except contant should be 39 // encoded as so_imm value. 40 reloc_arm_so_imm_cp_entry, 41 42 // reloc_arm_machine_cp_entry - Relocation of a ARM machine constantpool 43 // entry. 44 reloc_arm_machine_cp_entry, 45 46 // reloc_arm_jt_base - PC relative relocation for jump tables whose 47 // addresses are kept locally in a map. 48 reloc_arm_jt_base, 49 50 // reloc_arm_pic_jt - PIC jump table entry relocation: dest bb - jt base. 51 reloc_arm_pic_jt, 52 53 // reloc_arm_branch - Branch address relocation. 54 reloc_arm_branch, 55 56 // reloc_arm_movt - MOVT immediate relocation. 57 reloc_arm_movt, 58 59 // reloc_arm_movw - MOVW immediate relocation. 60 reloc_arm_movw 61 }; 62 } 63 } 64 65 #endif 66 67