aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2014-03-06 12:39:45 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-07 12:20:24 +0100
commit9c4cba80e4849dfe3f445b711381df4b0e7dbfc3 (patch)
tree61423d7607aa85239ded5d659b28aa836658b45a /src/qml/jit
parent206b0e1f2ed2c6d42bc814a3b04567ceeb438de6 (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/jit')
-rw-r--r--src/qml/jit/qv4assembler_p.h4
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();