aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit/qv4isel_masm_p.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2014-08-12 09:40:11 +0200
committerErik Verbruggen <erik.verbruggen@digia.com>2014-08-14 15:27:51 +0200
commitd9f33ccdef985badc56fd8940373748626beffc7 (patch)
treeccacfa93345abba1d274dfb0bae178e855efb613 /src/qml/jit/qv4isel_masm_p.h
parent17743ea6e22535bd5c6c01436c40084f0c4053bc (diff)
V4 JIT: parameterize the prologue and epilogue generation
... with the regular (non-FP) registers that need to be saved. This patch shouldn't change any of the JIT generated code, because all regular callee saved registers are passed in. Change-Id: Id11b8f37f06d80e8015ac6f0d0ccefdfa3342cbe Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jit/qv4isel_masm_p.h')
-rw-r--r--src/qml/jit/qv4isel_masm_p.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/qml/jit/qv4isel_masm_p.h b/src/qml/jit/qv4isel_masm_p.h
index af518a0851..bbe0f05556 100644
--- a/src/qml/jit/qv4isel_masm_p.h
+++ b/src/qml/jit/qv4isel_masm_p.h
@@ -237,6 +237,8 @@ private:
int prepareVariableArguments(IR::ExprList* args);
int prepareCallData(IR::ExprList* args, IR::Expr *thisObject);
+ void calculateRegistersToSave(const RegisterInformation &used);
+
template <typename Retval, typename Arg1, typename Arg2, typename Arg3>
void generateLookupCall(Retval retval, uint index, uint getterSetterOffset, Arg1 arg1, Arg2 arg2, Arg3 arg3)
{
@@ -263,6 +265,7 @@ private:
QScopedPointer<CompilationUnit> compilationUnit;
QQmlEnginePrivate *qmlEngine;
+ RegisterInformation regularRegistersToSave;
};
class Q_QML_EXPORT ISelFactory: public EvalISelFactory