diff options
author | Erik Verbruggen <erik.verbruggen@qt.io> | 2017-10-11 11:59:40 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-10-23 06:27:49 +0000 |
commit | 44a47106419ea4daea077320cf5f857fe6ae8b47 (patch) | |
tree | 6782e08c532ff43342ae88ff7d0fb7ad54ddfd8b /src/qml/compiler/qv4instr_moth.cpp | |
parent | 2a8d1f27df08aa42fae3d9b80abc4a7935d3ba63 (diff) |
Remove Binop/BinopContext instructions and implement missing binops
Change-Id: Ibefac50246045066c90c4c2dbc36d2776c5dab0e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4instr_moth.cpp')
-rw-r--r-- | src/qml/compiler/qv4instr_moth.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/src/qml/compiler/qv4instr_moth.cpp b/src/qml/compiler/qv4instr_moth.cpp index 6e29c97927..ea19233a3d 100644 --- a/src/qml/compiler/qv4instr_moth.cpp +++ b/src/qml/compiler/qv4instr_moth.cpp @@ -530,10 +530,6 @@ void dumpBytecode(const char *code, int len, int nLocals, int nFormals, int /*st MOTH_BEGIN_INSTR(Decrement) MOTH_END_INSTR(PreDecrement) - MOTH_BEGIN_INSTR(Binop) - d << alu << ", " << dumpRegister(lhs, nFormals) << ", acc"; - MOTH_END_INSTR(Binop) - MOTH_BEGIN_INSTR(Add) d << dumpRegister(lhs, nFormals) << ", acc"; MOTH_END_INSTR(Add) @@ -550,6 +546,10 @@ void dumpBytecode(const char *code, int len, int nLocals, int nFormals, int /*st d << dumpRegister(lhs, nFormals) << ", acc"; MOTH_END_INSTR(BitXor) + MOTH_BEGIN_INSTR(UShr) + d << dumpRegister(lhs, nFormals) << ", acc"; + MOTH_END_INSTR(UShr) + MOTH_BEGIN_INSTR(Shr) d << dumpRegister(lhs, nFormals) << ", acc"; MOTH_END_INSTR(Shr) @@ -570,6 +570,10 @@ void dumpBytecode(const char *code, int len, int nLocals, int nFormals, int /*st d << "acc, " << rhs; MOTH_END_INSTR(BitXor) + MOTH_BEGIN_INSTR(UShrConst) + d << "acc, " << rhs; + MOTH_END_INSTR(UShrConst) + MOTH_BEGIN_INSTR(ShrConst) d << "acc, " << rhs; MOTH_END_INSTR(ShrConst) @@ -582,13 +586,25 @@ void dumpBytecode(const char *code, int len, int nLocals, int nFormals, int /*st d << dumpRegister(lhs, nFormals) << ", acc"; MOTH_END_INSTR(Mul) + MOTH_BEGIN_INSTR(Div) + d << dumpRegister(lhs, nFormals) << ", acc"; + MOTH_END_INSTR(Div) + + MOTH_BEGIN_INSTR(Mod) + d << dumpRegister(lhs, nFormals) << ", acc"; + MOTH_END_INSTR(Mod) + MOTH_BEGIN_INSTR(Sub) d << dumpRegister(lhs, nFormals) << ", acc"; MOTH_END_INSTR(Sub) - MOTH_BEGIN_INSTR(BinopContext) - d << alu << " " << dumpRegister(lhs, nFormals) << ", acc"; - MOTH_END_INSTR(BinopContext) + MOTH_BEGIN_INSTR(CmpIn) + d << dumpRegister(lhs, nFormals) << ", acc"; + MOTH_END_INSTR(CmpIn) + + MOTH_BEGIN_INSTR(CmpInstanceOf) + d << dumpRegister(lhs, nFormals) << ", acc"; + MOTH_END_INSTR(CmpInstanceOf) MOTH_BEGIN_INSTR(Ret) MOTH_END_INSTR(Ret) |