LLVM API Documentation

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

SparcV9Relocations.h

Go to the documentation of this file.
00001 //===- SparcV9Relocations.h - SparcV9 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 SparcV9 target-specific relocation types.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 
00014 #ifndef SPARCV9RELOCATIONS_H
00015 #define SPARCV9RELOCATIONS_H
00016 
00017 #include "llvm/CodeGen/MachineRelocation.h"
00018 
00019 namespace llvm {
00020   namespace V9 {
00021     enum RelocationType {
00022       // reloc_pcrel_call - PC relative relocation, shifted right by two bits,
00023       // inserted into a 30 bit field.  This is used to relocate direct call
00024       // instructions.
00025       reloc_pcrel_call = 0,
00026 
00027       // reloc_sethi_hh - Absolute relocation, for 'sethi %hh(G),reg' operation.
00028       reloc_sethi_hh = 1,
00029 
00030       // reloc_sethi_lm - Absolute relocation, for 'sethi %lm(G),reg' operation.
00031       reloc_sethi_lm = 2,
00032 
00033       // reloc_or_hm - Absolute relocation, for 'or reg,%hm(G),reg' operation.
00034       reloc_or_hm = 3,
00035 
00036       // reloc_or_lo - Absolute relocation, for 'or reg,%lo(G),reg' operation.
00037       reloc_or_lo = 4,
00038     };
00039   }
00040 }
00041 
00042 #endif