LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

PPC32Relocations.h

Go to the documentation of this file.
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