* Rename existing relocations to be more specific
[oota-llvm.git] / lib / Target / PowerPC / PPCRelocations.h
1 //===- PPC32Relocations.h - PPC32 Code Relocations --------------*- C++ -*-===//
2 // 
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
7 // 
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines the PowerPC 32-bit target-specific relocation types.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef PPC32RELOCATIONS_H
15 #define PPC32RELOCATIONS_H
16
17 #include "llvm/CodeGen/MachineRelocation.h"
18
19 namespace llvm {
20   namespace PPC {
21     enum RelocationType {
22       // reloc_pcrel_bx - PC relative relocation, for the b or bl instructions.
23       reloc_pcrel_bx,
24
25       // reloc_absolute_high - Absolute relocation, for the loadhi instruction
26       // (which is really addis).  Add the high 16-bits of the specified global
27       // address into the low 16-bits of the instruction.
28       reloc_absolute_high,
29
30       // reloc_absolute_low - Absolute relocation, for the la instruction (which
31       // is really an addi).  Add the low 16-bits of teh specified global
32       // address into the low 16-bits of the instruction.
33       reloc_absolute_low,
34
35       // reloc_absolute_ptr_high - Absolute relocation for references to lazy
36       // pointer stubs.  In this case, the relocated instruction should be
37       // relocated to point to a POINTER to the indicated global.  The low-16
38       // bits of the instruction are rewritten with the high 16-bits of the
39       // address of the pointer.
40       reloc_absolute_ptr_high,
41
42       // reloc_absolute_ptr_low - Absolute relocation for references to lazy
43       // pointer stubs.  In this case, the relocated instruction should be
44       // relocated to point to a POINTER to the indicated global.  The low-16
45       // bits of the instruction are rewritten with the low 16-bits of the
46       // address of the pointer.
47       reloc_absolute_ptr_low,
48     };
49   }
50 }
51
52 #endif