diff options
author | Erik Verbruggen <erik.verbruggen@qt.io> | 2018-11-05 16:46:29 +0100 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2018-11-06 10:40:28 +0000 |
commit | 53440d6844a712e6675e084ada8a196ed6555aa1 (patch) | |
tree | ec6404dac67eb01190e98ab8cc2662d2abd9005c /src/qml/jit/qv4baselineassembler.cpp | |
parent | 00b1ff4607a560a2df674d56a70ecf3bd3e4f3df (diff) |
V4: Fix 32bit moveReg to not use the return value registers
As with the 64bit implementation: use the scratch register. The return
value register is used to hold the newly allocated space on the JS
stack.
Fixes: QTBUG-71319
Change-Id: Ia924ad24ff7f4fbf5ec21b6e6237cce7d907bf3e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/jit/qv4baselineassembler.cpp')
-rw-r--r-- | src/qml/jit/qv4baselineassembler.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/qml/jit/qv4baselineassembler.cpp b/src/qml/jit/qv4baselineassembler.cpp index f6b745632b..c62d6e5388 100644 --- a/src/qml/jit/qv4baselineassembler.cpp +++ b/src/qml/jit/qv4baselineassembler.cpp @@ -444,12 +444,12 @@ public: void moveReg(Address sourceRegAddress, Address destRegAddress) { - load32(sourceRegAddress, ReturnValueRegisterValue); + load32(sourceRegAddress, ScratchRegister); + store32(ScratchRegister, destRegAddress); sourceRegAddress.offset += 4; - load32(sourceRegAddress, ReturnValueRegisterTag); - store32(ReturnValueRegisterValue, destRegAddress); destRegAddress.offset += 4; - store32(ReturnValueRegisterTag, destRegAddress); + load32(sourceRegAddress, ScratchRegister); + store32(ScratchRegister, destRegAddress); } void loadString(int stringId) |