diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-03-06 12:39:45 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-07 12:20:24 +0100 |
commit | 9c4cba80e4849dfe3f445b711381df4b0e7dbfc3 (patch) | |
tree | 61423d7607aa85239ded5d659b28aa836658b45a /src/qml | |
parent | 206b0e1f2ed2c6d42bc814a3b04567ceeb438de6 (diff) |
V4 JIT: fix stack space reserving code
sub32 will truncate the register's content, which is a bit problematic
when the stack is located outside the first 4G (e.g. on win64).
Change-Id: I8c2c55c0e08f4e5b67295ba6a8a26d7d55d4477f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml')
-rw-r--r-- | src/qml/jit/qv4assembler_p.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index 29e94ea5f0..d8efea17af 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -965,7 +965,7 @@ public: if (stackSpaceNeeded) { Q_ASSERT(stackSpaceNeeded < (INT_MAX - StackAlignment)); stackSpaceNeeded = static_cast<int>(WTF::roundUpToMultipleOf(StackAlignment, stackSpaceNeeded)); - sub32(TrustedImm32(stackSpaceNeeded), StackPointerRegister); + subPtr(TrustedImm32(stackSpaceNeeded), StackPointerRegister); } // First save any arguments that reside in registers, because they could be overwritten @@ -995,7 +995,7 @@ public: callAbsolute(functionName, function); if (stackSpaceNeeded) - add32(TrustedImm32(stackSpaceNeeded), StackPointerRegister); + addPtr(TrustedImm32(stackSpaceNeeded), StackPointerRegister); if (ExceptionCheck<Callable>::NeedsCheck) { checkException(); |