aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4instr_moth_p.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@me.com>2013-09-01 15:45:53 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-13 11:41:23 +0200
commit9c82c105a1886473ca144b802ce9f5bec01e35e8 (patch)
tree2caeb5945e2b60f49ba046ec50a45c0bec4f2f7d /src/qml/compiler/qv4instr_moth_p.h
parent0ef673efe8bf381e1aa0202752deac27e86ada53 (diff)
V4: Fix SSA decomposition when no regalloc is used.
Add scheduling for moves generated by removing phi nodes by re-using the MoveMapping class from the register allocator. This change applies to both the JIT when no register allocator is used, and the interpreter. Change-Id: I38eac5b13759c7790132d1ef07fa17fcb53187e3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4instr_moth_p.h')
-rw-r--r--src/qml/compiler/qv4instr_moth_p.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h
index 25c8ac512c..af1ca0ae76 100644
--- a/src/qml/compiler/qv4instr_moth_p.h
+++ b/src/qml/compiler/qv4instr_moth_p.h
@@ -56,6 +56,7 @@ QT_BEGIN_NAMESPACE
F(LoadRegExp, loadRegExp) \
F(LoadClosure, loadClosure) \
F(MoveTemp, moveTemp) \
+ F(SwapTemps, swapTemps) \
F(LoadName, loadName) \
F(StoreName, storeName) \
F(LoadElement, loadElement) \
@@ -228,6 +229,11 @@ union Instr
Param source;
Param result;
};
+ struct instr_swapTemps {
+ MOTH_INSTR_HEADER
+ Param left;
+ Param right;
+ };
struct instr_loadClosure {
MOTH_INSTR_HEADER
int value;
@@ -505,6 +511,7 @@ union Instr
instr_loadRuntimeString loadRuntimeString;
instr_loadRegExp loadRegExp;
instr_moveTemp moveTemp;
+ instr_swapTemps swapTemps;
instr_loadClosure loadClosure;
instr_loadName loadName;
instr_storeName storeName;