summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorWeiming Zhao <weimingz@codeaurora.org>2014-06-24 16:21:38 +0000
committerWeiming Zhao <weimingz@codeaurora.org>2014-06-24 16:21:38 +0000
commitc33b4883b39a63c518f829e5ce992928137f9551 (patch)
tree31e4c879c1ce33cfa738be7d244ca269a0c4e2be /include
parentfde22c17f5e4dc2f93a0481fa95f89f8a633ba8a (diff)
downloadllvm-c33b4883b39a63c518f829e5ce992928137f9551.tar.gz
llvm-c33b4883b39a63c518f829e5ce992928137f9551.tar.bz2
llvm-c33b4883b39a63c518f829e5ce992928137f9551.tar.xz
Resubmit commit r211533
"Fix PR20056: Implement pseudo LDR <reg>, =<literal/label> for AArch64" Missed files are added in this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211605 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/MC/MCStreamer.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index bf224979de..cd1fa9b6a8 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -86,6 +86,27 @@ public:
virtual void finish();
};
+class AArch64TargetStreamer : public MCTargetStreamer {
+public:
+ AArch64TargetStreamer(MCStreamer &S);
+ ~AArch64TargetStreamer();
+
+
+ void finish() override;
+
+ /// Callback used to implement the ldr= pseudo.
+ /// Add a new entry to the constant pool for the current section and return an
+ /// MCExpr that can be used to refer to the constant pool location.
+ const MCExpr *addConstantPoolEntry(const MCExpr *);
+
+ /// Callback used to implemnt the .ltorg directive.
+ /// Emit contents of constant pool for the current section.
+ void emitCurrentConstantPool();
+
+private:
+ std::unique_ptr<AssemblerConstantPools> ConstantPools;
+};
+
// FIXME: declared here because it is used from
// lib/CodeGen/AsmPrinter/ARMException.cpp.
class ARMTargetStreamer : public MCTargetStreamer {