aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4instr_moth_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-08-16 09:32:28 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2017-08-25 11:53:47 +0000
commit29e1531252ef435086a2b84e20a8e83304ca30bc (patch)
tree51bc6cf51b019f979ef93ce1425098d0ad373008 /src/qml/compiler/qv4instr_moth_p.h
parent584dcb7773f2fe44ba53bd43f6eda7185249e9ab (diff)
Add optimized JmpCmpEq/NeNull instructions
for comparisons with null or undefined. Change-Id: I4a70d12ace501e4c4735b2ccfd6de19aeb9fef22 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4instr_moth_p.h')
-rw-r--r--src/qml/compiler/qv4instr_moth_p.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h
index 2f181f806c..cb55e84442 100644
--- a/src/qml/compiler/qv4instr_moth_p.h
+++ b/src/qml/compiler/qv4instr_moth_p.h
@@ -140,6 +140,8 @@ QT_BEGIN_NAMESPACE
F(Jump, jump) \
F(JumpEq, jumpEq) \
F(JumpNe, jumpNe) \
+ F(CmpJmpEqNull, cmpJmpEqNull) \
+ F(CmpJmpNeNull, cmpJmpNeNull) \
F(CmpJmpEq, cmpJmpEq) \
F(CmpJmpNe, cmpJmpNe) \
F(CmpJmpGt, cmpJmpGt) \
@@ -570,6 +572,14 @@ union Instr
MOTH_INSTR_HEADER
ptrdiff_t offset;
};
+ struct instr_cmpJmpEqNull {
+ MOTH_INSTR_HEADER
+ ptrdiff_t offset;
+ };
+ struct instr_cmpJmpNeNull {
+ MOTH_INSTR_HEADER
+ ptrdiff_t offset;
+ };
struct instr_cmpJmpEq {
MOTH_INSTR_HEADER
StackSlot lhs;
@@ -788,6 +798,8 @@ union Instr
instr_jump jump;
instr_jumpEq jumpEq;
instr_jumpNe jumpNe;
+ instr_cmpJmpEqNull cmpJmpEqNull;
+ instr_cmpJmpNeNull cmpJmpNeNull;
instr_cmpJmpEq cmpJmpEq;
instr_cmpJmpNe cmpJmpNe;
instr_cmpJmpGt cmpJmpGt;