diff options
author | Erik Verbruggen <[email protected]> | 2014-06-05 14:13:39 +0200 |
---|---|---|
committer | The Qt Project <[email protected]> | 2014-06-05 22:10:18 +0200 |
commit | d8b276a59402cbbe6d070ba38805350e7f3dd8a1 (patch) | |
tree | 25502a0b751e212643eb4b8da3c05b4aa7c565b5 | |
parent | ec8f1ad27ebee154b3c4869922b953a432f9d944 (diff) |
V4 Yarr JIT: push/pop addressTempRegister.
Change 6572d4e50d73ac60a8974d07de74c27a7f99ebef moved the
addressTempRegister from r3 to r10, so that calculated calls would not
overwrite the fourth argument of a call. However, JSC's Yarr JIT might
also use it for certain loads, so it also needs to save r10.
Task-number: QTBUG-39289
Change-Id: I0a4e725b6b11ab5e772330662049668bed009c05
Reviewed-by: Simon Hausmann <[email protected]>
-rw-r--r-- | src/3rdparty/masm/yarr/YarrJIT.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/3rdparty/masm/yarr/YarrJIT.cpp b/src/3rdparty/masm/yarr/YarrJIT.cpp index 783a869b5a..94a72a57c7 100644 --- a/src/3rdparty/masm/yarr/YarrJIT.cpp +++ b/src/3rdparty/masm/yarr/YarrJIT.cpp @@ -2561,6 +2561,7 @@ class YarrGenerator : private MacroAssembler { #if CPU(ARM_TRADITIONAL) push(ARMRegisters::r8); // scratch register #endif + push(addressTempRegister); if (compileMode == IncludeSubpatterns) move(ARMRegisters::r3, output); #elif CPU(SH4) @@ -2588,6 +2589,7 @@ class YarrGenerator : private MacroAssembler { pop(X86Registers::ebx); pop(X86Registers::ebp); #elif CPU(ARM) + pop(addressTempRegister); #if CPU(ARM_TRADITIONAL) pop(ARMRegisters::r8); // scratch register #endif |