From 53440d6844a712e6675e084ada8a196ed6555aa1 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Mon, 5 Nov 2018 16:46:29 +0100 Subject: 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 Reviewed-by: Ulf Hermann --- src/qml/jit/qv4baselineassembler.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') 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) -- cgit v1.2.3