summaryrefslogtreecommitdiff
path: root/include/llvm/MC/MCFixupKindInfo.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-12-16 03:05:53 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-12-16 03:05:53 +0000
commit1d6547eb49ef46d2606810f0abad2570c41e38bd (patch)
tree7dfd4fabeaa2b168d10f1b76a58f8091d4bfdb29 /include/llvm/MC/MCFixupKindInfo.h
parent9754ab010e3897457e75cbf0aa74e276fc944174 (diff)
downloadllvm-1d6547eb49ef46d2606810f0abad2570c41e38bd.tar.gz
llvm-1d6547eb49ef46d2606810f0abad2570c41e38bd.tar.bz2
llvm-1d6547eb49ef46d2606810f0abad2570c41e38bd.tar.xz
MC: Split MCFixupKindInfo out into its own header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121948 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/MC/MCFixupKindInfo.h')
-rw-r--r--include/llvm/MC/MCFixupKindInfo.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/include/llvm/MC/MCFixupKindInfo.h b/include/llvm/MC/MCFixupKindInfo.h
new file mode 100644
index 0000000000..1961687146
--- /dev/null
+++ b/include/llvm/MC/MCFixupKindInfo.h
@@ -0,0 +1,43 @@
+//===-- llvm/MC/MCFixupKindInfo.h - Fixup Descriptors -----------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_MC_MCFIXUPKINDINFO_H
+#define LLVM_MC_MCFIXUPKINDINFO_H
+
+namespace llvm {
+
+/// MCFixupKindInfo - Target independent information on a fixup kind.
+struct MCFixupKindInfo {
+ enum FixupKindFlags {
+ /// Is this fixup kind PCrelative? This is used by the assembler backend to
+ /// evaluate fixup values in a target independent manner when possible.
+ FKF_IsPCRel = (1 << 0),
+
+ /// Should this fixup kind force a 4-byte aligned effective PC value?
+ FKF_IsAlignedDownTo32Bits = (1 << 1)
+ };
+
+ /// A target specific name for the fixup kind. The names will be unique for
+ /// distinct kinds on any given target.
+ const char *Name;
+
+ /// The bit offset to write the relocation into.
+ unsigned TargetOffset;
+
+ /// The number of bits written by this fixup. The bits are assumed to be
+ /// contiguous.
+ unsigned TargetSize;
+
+ /// Flags describing additional information on this fixup kind.
+ unsigned Flags;
+};
+
+} // End llvm namespace
+
+#endif