summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2017-12-05 17:23:43 +0000
committerDan Gohman <dan433584@gmail.com>2017-12-05 17:23:43 +0000
commitc2c997718d2679131c98f134510c973ad97de268 (patch)
tree195ce74f3908622838f2583eee821a62864360e9 /llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
parentf7172f4ab095c641c36ce205d6c7e965b2b5b67c (diff)
downloadbcm5719-llvm-c2c997718d2679131c98f134510c973ad97de268.tar.gz
bcm5719-llvm-c2c997718d2679131c98f134510c973ad97de268.zip
[WebAssembly] Implement WASM_STACK_POINTER.
Use the .stack_pointer directive to implement WASM_STACK_POINTER for specifying a global variable to be the stack pointer. llvm-svn: 319797
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
index 5f7f3d694cd..1d606d49bed 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
@@ -78,6 +78,10 @@ WebAssemblyTargetStreamer *WebAssemblyAsmPrinter::getTargetStreamer() {
//===----------------------------------------------------------------------===//
void WebAssemblyAsmPrinter::EmitEndOfAsmFile(Module &M) {
+ // Declare the stack pointer.
+ getTargetStreamer()->emitStackPointer(
+ GetExternalSymbolSymbol("__stack_pointer"));
+
for (const auto &F : M) {
// Emit function type info for all undefined functions
if (F.isDeclarationForLinker() && !F.isIntrinsic()) {
OpenPOWER on IntegriCloud