From 9c4cba80e4849dfe3f445b711381df4b0e7dbfc3 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Thu, 6 Mar 2014 12:39:45 +0100 Subject: 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 --- src/qml/jit/qv4assembler_p.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/qml/jit') 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(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::NeedsCheck) { checkException(); -- cgit v1.2.3