1234353Sdim//===-- MipsRelocations.h - Mips Code Relocations ---------------*- C++ -*-===//
2226584Sdim//
3226584Sdim//                     The LLVM Compiler Infrastructure
4226584Sdim//
5226584Sdim// This file is distributed under the University of Illinois Open Source
6226584Sdim// License. See LICENSE.TXT for details.
7226584Sdim//
8234353Sdim//===----------------------------------------------------------------------===//
9226584Sdim//
10226584Sdim// This file defines the Mips target-specific relocation types
11226584Sdim// (for relocation-model=static).
12226584Sdim//
13234353Sdim//===----------------------------------------------------------------------===//
14226584Sdim
15226584Sdim#ifndef MIPSRELOCATIONS_H_
16226584Sdim#define MIPSRELOCATIONS_H_
17226584Sdim
18226584Sdim#include "llvm/CodeGen/MachineRelocation.h"
19226584Sdim
20226584Sdimnamespace llvm {
21226584Sdim  namespace Mips{
22226584Sdim    enum RelocationType {
23234353Sdim      // reloc_mips_pc16 - pc relative relocation for branches. The lower 18
24226584Sdim      // bits of the difference between the branch target and the branch
25226584Sdim      // instruction, shifted right by 2.
26234353Sdim      reloc_mips_pc16 = 1,
27226584Sdim
28226584Sdim      // reloc_mips_hi - upper 16 bits of the address (modified by +1 if the
29226584Sdim      // lower 16 bits of the address is negative).
30226584Sdim      reloc_mips_hi = 2,
31226584Sdim
32226584Sdim      // reloc_mips_lo - lower 16 bits of the address.
33226584Sdim      reloc_mips_lo = 3,
34226584Sdim
35226584Sdim      // reloc_mips_26 - lower 28 bits of the address, shifted right by 2.
36226584Sdim      reloc_mips_26 = 4
37226584Sdim    };
38226584Sdim  }
39226584Sdim}
40226584Sdim
41226584Sdim#endif /* MIPSRELOCATIONS_H_ */
42