From bb3722430f8bf7ceaa22e4f13df2a1730d93cfd7 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 26 Jan 2016 03:39:31 +0000 Subject: [WebAssembly] Implement unaligned loads and stores. Differential Revision: http://reviews.llvm.org/D16534 llvm-svn: 258779 --- llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp') 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); } -- cgit v1.2.3