summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCRelocations.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-14 23:59:06 +0000
committerChris Lattner <sabre@nondot.org>2005-10-14 23:59:06 +0000
commit6f3b9546629e5c0d1eabbf94aabff74a04df33e9 (patch)
tree3b94d722f3b82bd730138b0ac652aed67449e746 /llvm/lib/Target/PowerPC/PPCRelocations.h
parent0aa794ba5baaf96ff9225d55c57f9115e9211c81 (diff)
downloadbcm5719-llvm-6f3b9546629e5c0d1eabbf94aabff74a04df33e9.tar.gz
bcm5719-llvm-6f3b9546629e5c0d1eabbf94aabff74a04df33e9.zip
Rename PPC32*.h to PPC*.h
This completes the grand PPC file renaming llvm-svn: 23745
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCRelocations.h')
-rw-r--r--llvm/lib/Target/PowerPC/PPCRelocations.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCRelocations.h b/llvm/lib/Target/PowerPC/PPCRelocations.h
new file mode 100644
index 00000000000..f6c9384d7d5
--- /dev/null
+++ b/llvm/lib/Target/PowerPC/PPCRelocations.h
@@ -0,0 +1,58 @@
+//===- PPC32Relocations.h - PPC32 Code Relocations --------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the PowerPC 32-bit target-specific relocation types.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef PPC32RELOCATIONS_H
+#define PPC32RELOCATIONS_H
+
+#include "llvm/CodeGen/MachineRelocation.h"
+
+// Hack to rid us of a PPC pre-processor symbol which is erroneously
+// defined in a PowerPC header file (bug in Linux/PPC)
+#ifdef PPC
+#undef PPC
+#endif
+
+namespace llvm {
+ namespace PPC {
+ enum RelocationType {
+ // reloc_pcrel_bx - PC relative relocation, for the b or bl instructions.
+ reloc_pcrel_bx,
+
+ // reloc_absolute_high - Absolute relocation, for the loadhi instruction
+ // (which is really addis). Add the high 16-bits of the specified global
+ // address into the low 16-bits of the instruction.
+ reloc_absolute_high,
+
+ // reloc_absolute_low - Absolute relocation, for the la instruction (which
+ // is really an addi). Add the low 16-bits of teh specified global
+ // address into the low 16-bits of the instruction.
+ reloc_absolute_low,
+
+ // reloc_absolute_ptr_high - Absolute relocation for references to lazy
+ // pointer stubs. In this case, the relocated instruction should be
+ // relocated to point to a POINTER to the indicated global. The low-16
+ // bits of the instruction are rewritten with the high 16-bits of the
+ // address of the pointer.
+ reloc_absolute_ptr_high,
+
+ // reloc_absolute_ptr_low - Absolute relocation for references to lazy
+ // pointer stubs. In this case, the relocated instruction should be
+ // relocated to point to a POINTER to the indicated global. The low-16
+ // bits of the instruction are rewritten with the low 16-bits of the
+ // address of the pointer.
+ reloc_absolute_ptr_low,
+ };
+ }
+}
+
+#endif
OpenPOWER on IntegriCloud