1 //===-- SparcRelocations.h - Sparc Code Relocations -------------*- 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 // This file defines the Sparc target-specific relocation types 11 // (for relocation-model=static). 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef SPARC_RELOCATIONS_H 16 #define SPARC_RELOCATIONS_H 17 18 #include "llvm/CodeGen/MachineRelocation.h" 19 20 namespace llvm { 21 namespace SP { 22 enum RelocationType { 23 // reloc_sparc_hi - upper 22 bits 24 reloc_sparc_hi = 1, 25 26 // reloc_sparc_lo - lower 10 bits 27 reloc_sparc_lo = 2, 28 29 // reloc_sparc_pc30 - pc rel. 30 bits for call 30 reloc_sparc_pc30 = 3, 31 32 // reloc_sparc_pc22 - pc rel. 22 bits for branch 33 reloc_sparc_pc22 = 4, 34 35 // reloc_sparc_pc22 - pc rel. 19 bits for branch with icc/xcc 36 reloc_sparc_pc19 = 5, 37 38 // reloc_sparc_h44 - 43-22 bits 39 reloc_sparc_h44 = 6, 40 41 // reloc_sparc_m44 - 21-12 bits 42 reloc_sparc_m44 = 7, 43 44 // reloc_sparc_l44 - lower 12 bits 45 reloc_sparc_l44 = 8, 46 47 // reloc_sparc_hh - 63-42 bits 48 reloc_sparc_hh = 9, 49 50 // reloc_sparc_hm - 41-32 bits 51 reloc_sparc_hm = 10 52 }; 53 } 54 } 55 56 #endif 57