Initial TOC support for PowerPC64 object creation
[oota-llvm.git] / lib / Target / PowerPC / MCTargetDesc / PPCFixupKinds.h
1 //===-- PPCFixupKinds.h - PPC Specific Fixup Entries ------------*- 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 #ifndef LLVM_PPC_PPCFIXUPKINDS_H
11 #define LLVM_PPC_PPCFIXUPKINDS_H
12
13 #include "llvm/MC/MCFixup.h"
14
15 namespace llvm {
16 namespace PPC {
17 enum Fixups {
18   // fixup_ppc_br24 - 24-bit PC relative relocation for direct branches like 'b'
19   // and 'bl'.
20   fixup_ppc_br24 = FirstTargetFixupKind,
21   
22   /// fixup_ppc_brcond14 - 14-bit PC relative relocation for conditional
23   /// branches.
24   fixup_ppc_brcond14,
25   
26   /// fixup_ppc_lo16 - A 16-bit fixup corresponding to lo16(_foo) for instrs
27   /// like 'li'.
28   fixup_ppc_lo16,
29   
30   /// fixup_ppc_ha16 - A 16-bit fixup corresponding to ha16(_foo) for instrs
31   /// like 'lis'.
32   fixup_ppc_ha16,
33   
34   /// fixup_ppc_lo14 - A 14-bit fixup corresponding to lo16(_foo) for instrs
35   /// like 'std'.
36   fixup_ppc_lo14,
37
38   /// fixup_ppc_toc - Insert value of TOC base (.TOC.).
39   fixup_ppc_toc,
40
41   /// fixup_ppc_toc16 - A 16-bit signed fixup relative to the TOC base.
42   fixup_ppc_toc16,
43
44   /// fixup_ppc_toc16_ds - A 14-bit signed fixup relative to the TOC base with
45   /// implied 2 zero bits
46   fixup_ppc_toc16_ds,
47   
48   // Marker
49   LastTargetFixupKind,
50   NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
51 };
52 }
53 }
54
55 #endif