diff options
author | Dan Gohman <dan433584@gmail.com> | 2016-10-06 22:08:28 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2016-10-06 22:08:28 +0000 |
commit | 7f1bdb2e02ca5e61703278d11809ffbcbea1fb29 (patch) | |
tree | 37e23d2d5da406e1942bd89188e9ad5e8d64215d /llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp | |
parent | e51bede1d8379311d836635eb2a0de49de850b9e (diff) | |
download | bcm5719-llvm-7f1bdb2e02ca5e61703278d11809ffbcbea1fb29.tar.gz bcm5719-llvm-7f1bdb2e02ca5e61703278d11809ffbcbea1fb29.zip |
[WebAssembly] Remove the output operand from stores.
Per spec changes, store instructions in WebAssembly no longer have a return
value. Update the instruction descriptions.
Differential Revision: https://reviews.llvm.org/D25122
llvm-svn: 283501
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp index bb8fe9ae996..9367464c806 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp @@ -71,9 +71,10 @@ void WebAssemblyRegisterInfo::eliminateFrameIndex( // If this is the address operand of a load or store, make it relative to SP // and fold the frame offset directly in. - if (MI.mayLoadOrStore() && FIOperandNum == WebAssembly::MemOpAddressOperandNo) { - assert(FrameOffset >= 0 && MI.getOperand(1).getImm() >= 0); - int64_t Offset = MI.getOperand(1).getImm() + FrameOffset; + if ((MI.mayLoad() && FIOperandNum == WebAssembly::LoadAddressOperandNo) || + (MI.mayStore() && FIOperandNum == WebAssembly::StoreAddressOperandNo)) { + assert(FrameOffset >= 0 && MI.getOperand(FIOperandNum - 1).getImm() >= 0); + int64_t Offset = MI.getOperand(FIOperandNum - 1).getImm() + FrameOffset; if (static_cast<uint64_t>(Offset) <= std::numeric_limits<uint32_t>::max()) { MI.getOperand(FIOperandNum - 1).setImm(Offset); |