LLVM API Documentation
00001 //===- PPC32Relocations.h - PPC32 Code Relocations --------------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file defines the PowerPC 32-bit target-specific relocation types. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef PPC32RELOCATIONS_H 00015 #define PPC32RELOCATIONS_H 00016 00017 #include "llvm/CodeGen/MachineRelocation.h" 00018 00019 namespace llvm { 00020 namespace PPC { 00021 enum RelocationType { 00022 // reloc_pcrel_bx - PC relative relocation, for the b or bl instructions. 00023 reloc_pcrel_bx, 00024 00025 // reloc_absolute_high - Absolute relocation, for the loadhi instruction 00026 // (which is really addis). Add the high 16-bits of the specified global 00027 // address into the low 16-bits of the instruction. 00028 reloc_absolute_high, 00029 00030 // reloc_absolute_low - Absolute relocation, for the la instruction (which 00031 // is really an addi). Add the low 16-bits of teh specified global 00032 // address into the low 16-bits of the instruction. 00033 reloc_absolute_low, 00034 00035 // reloc_absolute_ptr_high - Absolute relocation for references to lazy 00036 // pointer stubs. In this case, the relocated instruction should be 00037 // relocated to point to a POINTER to the indicated global. The low-16 00038 // bits of the instruction are rewritten with the high 16-bits of the 00039 // address of the pointer. 00040 reloc_absolute_ptr_high, 00041 00042 // reloc_absolute_ptr_low - Absolute relocation for references to lazy 00043 // pointer stubs. In this case, the relocated instruction should be 00044 // relocated to point to a POINTER to the indicated global. The low-16 00045 // bits of the instruction are rewritten with the low 16-bits of the 00046 // address of the pointer. 00047 reloc_absolute_ptr_low, 00048 }; 00049 } 00050 } 00051 00052 #endif