//===-- ARMRelocations.h - ARM Code Relocations -----------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines the ARM target-specific relocation types.
//
//===----------------------------------------------------------------------===//

#ifndef ARMRELOCATIONS_H
#define ARMRELOCATIONS_H

#include "llvm/CodeGen/MachineRelocation.h"

namespace llvm {
  namespace ARM {
    enum RelocationType {
      // reloc_arm_absolute - Absolute relocation, just add the relocated value
      // to the value already in memory.
      reloc_arm_absolute,

      // reloc_arm_relative - PC relative relocation, add the relocated value to
      // the value already in memory, after we adjust it for where the PC is.
      reloc_arm_relative,

      // reloc_arm_cp_entry - PC relative relocation for constpool_entry's whose
      // addresses are kept locally in a map.
      reloc_arm_cp_entry,

      // reloc_arm_vfp_cp_entry - Same as reloc_arm_cp_entry except the offset
      // should be divided by 4.
      reloc_arm_vfp_cp_entry,

      // reloc_arm_so_imm - Same as reloc_arm_cp_entry except contant should be
      // encoded as so_imm value.
      reloc_arm_so_imm_cp_entry,

      // reloc_arm_machine_cp_entry - Relocation of a ARM machine constantpool
      // entry.
      reloc_arm_machine_cp_entry,

      // reloc_arm_jt_base - PC relative relocation for jump tables whose
      // addresses are kept locally in a map.
      reloc_arm_jt_base,

      // reloc_arm_pic_jt - PIC jump table entry relocation: dest bb - jt base.
      reloc_arm_pic_jt,

      // reloc_arm_branch - Branch address relocation.
      reloc_arm_branch,

      // reloc_arm_movt  - MOVT immediate relocation.
      reloc_arm_movt,

      // reloc_arm_movw  - MOVW immediate relocation.
      reloc_arm_movw
    };
  }
}

#endif

