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 19namespace 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