From a503efe0df31742bac7d5af6ed4a53ee79a4c2a7 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Tue, 12 Aug 2014 14:30:42 +0200 Subject: V4 JIT: calculate used registers and only save those. Instead of saving all possibly used ones. Note that floating point registers are not saved yet, as we don't support callee-saved FP registers yet. Change-Id: I1db2ba2513f7b466c64ec103eda0c464269247b0 Reviewed-by: Simon Hausmann --- src/qml/jit/qv4isel_masm.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/qml/jit/qv4isel_masm.cpp') diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 5547190303..39e7c0fbc2 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -225,8 +225,9 @@ void InstructionSelection::run(int functionIndex) static const bool withRegisterAllocator = qgetenv("QV4_NO_REGALLOC").isEmpty(); if (Assembler::RegAllocIsSupported && opt.isInSSA() && withRegisterAllocator) { - RegisterAllocator(Assembler::getRegisterInfo()).run(_function, opt); - calculateRegistersToSave(Assembler::getRegisterInfo()); + RegisterAllocator regalloc(Assembler::getRegisterInfo()); + regalloc.run(_function, opt); + calculateRegistersToSave(regalloc.usedRegisters()); } else { if (opt.isInSSA()) // No register allocator available for this platform, or env. var was set, so: -- cgit v1.2.3