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_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