diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2013-09-26 14:49:44 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-30 11:28:55 +0200 |
commit | 7c3f891c454971ed0150e66c2261e6e5c36664a3 (patch) | |
tree | 067a59085a30ddf7ade38dd1cad078033a886486 /src/qml/compiler/qv4isel_moth.cpp | |
parent | 9194779ef37187b1b38d73099747459f9f5e745c (diff) |
V4: remove inplace operations
Inplace operations are expanded when building the IR, so the neither the
IR, nor the instruction selection backends or runtime need to handle
them.
Change-Id: Id01f9544e137dd52364cf2ed2c10931c31ddfff3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4isel_moth.cpp')
-rw-r--r-- | src/qml/compiler/qv4isel_moth.cpp | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/qml/compiler/qv4isel_moth.cpp b/src/qml/compiler/qv4isel_moth.cpp index 35fca99df4..af914c79e7 100644 --- a/src/qml/compiler/qv4isel_moth.cpp +++ b/src/qml/compiler/qv4isel_moth.cpp @@ -604,85 +604,6 @@ Param InstructionSelection::binopHelper(V4IR::AluOp oper, V4IR::Expr *leftSource } } -void InstructionSelection::inplaceNameOp(V4IR::AluOp oper, V4IR::Temp *rightSource, const QString &targetName) -{ - QV4::InplaceBinOpName op = 0; - switch (oper) { - case V4IR::OpBitAnd: op = QV4::__qmljs_inplace_bit_and_name; break; - case V4IR::OpBitOr: op = QV4::__qmljs_inplace_bit_or_name; break; - case V4IR::OpBitXor: op = QV4::__qmljs_inplace_bit_xor_name; break; - case V4IR::OpAdd: op = QV4::__qmljs_inplace_add_name; break; - case V4IR::OpSub: op = QV4::__qmljs_inplace_sub_name; break; - case V4IR::OpMul: op = QV4::__qmljs_inplace_mul_name; break; - case V4IR::OpDiv: op = QV4::__qmljs_inplace_div_name; break; - case V4IR::OpMod: op = QV4::__qmljs_inplace_mod_name; break; - case V4IR::OpLShift: op = QV4::__qmljs_inplace_shl_name; break; - case V4IR::OpRShift: op = QV4::__qmljs_inplace_shr_name; break; - case V4IR::OpURShift: op = QV4::__qmljs_inplace_ushr_name; break; - default: break; - } - - if (op) { - Instruction::InplaceNameOp ieo; - ieo.alu = op; - ieo.name = registerString(targetName); - ieo.source = getParam(rightSource); - addInstruction(ieo); - } -} - -void InstructionSelection::inplaceElementOp(V4IR::AluOp oper, V4IR::Temp *source, V4IR::Temp *targetBaseTemp, V4IR::Temp *targetIndexTemp) -{ - QV4::InplaceBinOpElement op = 0; - switch (oper) { - case V4IR::OpBitAnd: op = QV4::__qmljs_inplace_bit_and_element; break; - case V4IR::OpBitOr: op = QV4::__qmljs_inplace_bit_or_element; break; - case V4IR::OpBitXor: op = QV4::__qmljs_inplace_bit_xor_element; break; - case V4IR::OpAdd: op = QV4::__qmljs_inplace_add_element; break; - case V4IR::OpSub: op = QV4::__qmljs_inplace_sub_element; break; - case V4IR::OpMul: op = QV4::__qmljs_inplace_mul_element; break; - case V4IR::OpDiv: op = QV4::__qmljs_inplace_div_element; break; - case V4IR::OpMod: op = QV4::__qmljs_inplace_mod_element; break; - case V4IR::OpLShift: op = QV4::__qmljs_inplace_shl_element; break; - case V4IR::OpRShift: op = QV4::__qmljs_inplace_shr_element; break; - case V4IR::OpURShift: op = QV4::__qmljs_inplace_ushr_element; break; - default: break; - } - - Instruction::InplaceElementOp ieo; - ieo.alu = op; - ieo.base = getParam(targetBaseTemp); - ieo.index = getParam(targetIndexTemp); - ieo.source = getParam(source); - addInstruction(ieo); -} - -void InstructionSelection::inplaceMemberOp(V4IR::AluOp oper, V4IR::Temp *source, V4IR::Temp *targetBase, const QString &targetName) -{ - QV4::InplaceBinOpMember op = 0; - switch (oper) { - case V4IR::OpBitAnd: op = QV4::__qmljs_inplace_bit_and_member; break; - case V4IR::OpBitOr: op = QV4::__qmljs_inplace_bit_or_member; break; - case V4IR::OpBitXor: op = QV4::__qmljs_inplace_bit_xor_member; break; - case V4IR::OpAdd: op = QV4::__qmljs_inplace_add_member; break; - case V4IR::OpSub: op = QV4::__qmljs_inplace_sub_member; break; - case V4IR::OpMul: op = QV4::__qmljs_inplace_mul_member; break; - case V4IR::OpDiv: op = QV4::__qmljs_inplace_div_member; break; - case V4IR::OpMod: op = QV4::__qmljs_inplace_mod_member; break; - case V4IR::OpLShift: op = QV4::__qmljs_inplace_shl_member; break; - case V4IR::OpRShift: op = QV4::__qmljs_inplace_shr_member; break; - case V4IR::OpURShift: op = QV4::__qmljs_inplace_ushr_member; break; - default: break; - } - - Instruction::InplaceMemberOp imo; - imo.alu = op; - imo.base = getParam(targetBase); - imo.member = registerString(targetName); - imo.source = getParam(source); - addInstruction(imo); -} - void InstructionSelection::prepareCallArgs(V4IR::ExprList *e, quint32 &argc, quint32 *args) { int argLocation = outgoingArgumentTempStart(); |