summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2016-01-26 03:39:31 +0000
committerDan Gohman <dan433584@gmail.com>2016-01-26 03:39:31 +0000
commitbb3722430f8bf7ceaa22e4f13df2a1730d93cfd7 (patch)
tree219adb250190e13c6003449f67bec940d71f5079 /llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
parent3a5c958182021abe2c2293409720ce9262711ef3 (diff)
downloadbcm5719-llvm-bb3722430f8bf7ceaa22e4f13df2a1730d93cfd7.tar.gz
bcm5719-llvm-bb3722430f8bf7ceaa22e4f13df2a1730d93cfd7.zip
[WebAssembly] Implement unaligned loads and stores.
Differential Revision: http://reviews.llvm.org/D16534 llvm-svn: 258779
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
index 43d9b53adaf..5ea532e13c9 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
@@ -84,6 +84,7 @@ static void adjustStackPointer(unsigned StackSize,
BuildMI(MBB, InsertPt, DL, TII->get(WebAssembly::LOAD_I32), SPReg)
.addImm(0)
.addReg(SPReg)
+ .addImm(2) // p2align
.addMemOperand(LoadMMO);
// Add/Subtract the frame size
unsigned OffsetReg = MRI.createVirtualRegister(&WebAssembly::I32RegClass);
@@ -102,6 +103,7 @@ static void adjustStackPointer(unsigned StackSize,
BuildMI(MBB, InsertPt, DL, TII->get(WebAssembly::STORE_I32), WebAssembly::SP32)
.addImm(0)
.addReg(OffsetReg)
+ .addImm(2) // p2align
.addReg(WebAssembly::SP32)
.addMemOperand(MMO);
}
@@ -169,6 +171,7 @@ void WebAssemblyFrameLowering::emitEpilogue(MachineFunction &MF,
BuildMI(MBB, InsertPt, DL, TII->get(WebAssembly::STORE_I32), WebAssembly::SP32)
.addImm(0)
.addReg(OffsetReg)
+ .addImm(2) // p2align
.addReg(WebAssembly::SP32)
.addMemOperand(MMO);
}
OpenPOWER on IntegriCloud