diff options
author | Lars Knoll <lars.knoll@digia.com> | 2013-08-05 23:41:42 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-07 14:20:52 +0200 |
commit | 36f28fdbebadbd61ff5907b8378abcf907b12dd3 (patch) | |
tree | dc3ded8237dc0977e56b3c57f38d9c47a24bff1a /src | |
parent | e8e7fff1f50d3517acaee8242180a89600334da3 (diff) |
Remove context argument from most binops
Change-Id: I4fa2636f1b2c8e8426b64d6e16bc7c223e6f327a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/v4/llvm_runtime.cpp | 72 | ||||
-rw-r--r-- | src/qml/qml/v4/moth/qv4instr_moth_p.h | 9 | ||||
-rw-r--r-- | src/qml/qml/v4/moth/qv4isel_moth.cpp | 32 | ||||
-rw-r--r-- | src/qml/qml/v4/moth/qv4vme_moth.cpp | 6 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4context.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4isel_masm.cpp | 26 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4isel_masm_p.h | 1 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4object.cpp | 28 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4object_p.h | 4 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4runtime.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/v4/qv4runtime_p.h | 77 |
11 files changed, 164 insertions, 98 deletions
diff --git a/src/qml/qml/v4/llvm_runtime.cpp b/src/qml/qml/v4/llvm_runtime.cpp index 0498bab44f..032ef82ab8 100644 --- a/src/qml/qml/v4/llvm_runtime.cpp +++ b/src/qml/qml/v4/llvm_runtime.cpp @@ -105,19 +105,19 @@ bool __qmljs_llvm_to_boolean(ExecutionContext *ctx, const Value *value) return __qmljs_to_boolean(*value); } -void __qmljs_llvm_bit_and(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_bit_and(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_bit_and(ctx, result, *left, *right); + __qmljs_bit_and(result, *left, *right); } -void __qmljs_llvm_bit_or(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_bit_or(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_bit_or(ctx, result, *left, *right); + __qmljs_bit_or(result, *left, *right); } -void __qmljs_llvm_bit_xor(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_bit_xor(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_bit_xor(ctx, result, *left, *right); + __qmljs_bit_xor(result, *left, *right); } void __qmljs_llvm_add(ExecutionContext *ctx, Value *result, Value *left, Value *right) @@ -125,79 +125,79 @@ void __qmljs_llvm_add(ExecutionContext *ctx, Value *result, Value *left, Value * __qmljs_add(ctx, result, *left, *right); } -void __qmljs_llvm_sub(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_sub(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_sub(ctx, result, *left, *right); + __qmljs_sub(result, *left, *right); } -void __qmljs_llvm_mul(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_mul(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_mul(ctx, result, *left, *right); + __qmljs_mul(result, *left, *right); } -void __qmljs_llvm_div(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_div(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_div(ctx, result, *left, *right); + __qmljs_div(result, *left, *right); } -void __qmljs_llvm_mod(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_mod(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_mod(ctx, result, *left, *right); + __qmljs_mod(result, *left, *right); } -void __qmljs_llvm_shl(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_shl(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_shl(ctx, result, *left, *right); + __qmljs_shl(result, *left, *right); } -void __qmljs_llvm_shr(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_shr(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_shr(ctx, result, *left, *right); + __qmljs_shr(result, *left, *right); } -void __qmljs_llvm_ushr(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_ushr(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_ushr(ctx, result, *left, *right); + __qmljs_ushr(result, *left, *right); } -void __qmljs_llvm_gt(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_gt(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_gt(ctx, result, *left, *right); + __qmljs_gt(result, *left, *right); } -void __qmljs_llvm_lt(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_lt(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_lt(ctx, result, *left, *right); + __qmljs_lt(result, *left, *right); } -void __qmljs_llvm_ge(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_ge(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_ge(ctx, result, *left, *right); + __qmljs_ge(result, *left, *right); } -void __qmljs_llvm_le(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_le(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_le(ctx, result, *left, *right); + __qmljs_le(result, *left, *right); } -void __qmljs_llvm_eq(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_eq(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_eq(ctx, result, *left, *right); + __qmljs_eq(result, *left, *right); } -void __qmljs_llvm_ne(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_ne(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_ne(ctx, result, *left, *right); + __qmljs_ne(result, *left, *right); } -void __qmljs_llvm_se(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_se(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_se(ctx, result, *left, *right); + __qmljs_se(result, *left, *right); } -void __qmljs_llvm_sne(ExecutionContext *ctx, Value *result, Value *left, Value *right) +void __qmljs_llvm_sne(ExecutionContext *, Value *result, Value *left, Value *right) { - __qmljs_sne(ctx, result, *left, *right); + __qmljs_sne(result, *left, *right); } void __qmljs_llvm_instanceof(ExecutionContext *ctx, Value *result, Value *left, Value *right) diff --git a/src/qml/qml/v4/moth/qv4instr_moth_p.h b/src/qml/qml/v4/moth/qv4instr_moth_p.h index 7397a1811d..ac7196e2d1 100644 --- a/src/qml/qml/v4/moth/qv4instr_moth_p.h +++ b/src/qml/qml/v4/moth/qv4instr_moth_p.h @@ -97,6 +97,7 @@ QT_BEGIN_NAMESPACE F(CJump, cjump) \ F(Unop, unop) \ F(Binop, binop) \ + F(BinopContext, binopContext) \ F(AddNumberParams, addNumberParams) \ F(MulNumberParams, mulNumberParams) \ F(SubNumberParams, subNumberParams) \ @@ -481,6 +482,13 @@ union Instr Param rhs; Param result; }; + struct instr_binopContext { + MOTH_INSTR_HEADER + QV4::BinOpContext alu; + Param lhs; + Param rhs; + Param result; + }; struct instr_addNumberParams { MOTH_INSTR_HEADER Param lhs; @@ -574,6 +582,7 @@ union Instr instr_cjump cjump; instr_unop unop; instr_binop binop; + instr_binopContext binopContext; instr_addNumberParams addNumberParams; instr_mulNumberParams mulNumberParams; instr_subNumberParams subNumberParams; diff --git a/src/qml/qml/v4/moth/qv4isel_moth.cpp b/src/qml/qml/v4/moth/qv4isel_moth.cpp index 04d759ed8d..610f429f5d 100644 --- a/src/qml/qml/v4/moth/qv4isel_moth.cpp +++ b/src/qml/qml/v4/moth/qv4isel_moth.cpp @@ -77,7 +77,7 @@ inline QV4::BinOp aluOpFunction(V4IR::AluOp op) case V4IR::OpBitXor: return QV4::__qmljs_bit_xor; case V4IR::OpAdd: - return QV4::__qmljs_add; + return 0; case V4IR::OpSub: return QV4::__qmljs_sub; case V4IR::OpMul: @@ -109,9 +109,9 @@ inline QV4::BinOp aluOpFunction(V4IR::AluOp op) case V4IR::OpStrictNotEqual: return QV4::__qmljs_sne; case V4IR::OpInstanceof: - return QV4::__qmljs_instanceof; + return 0; case V4IR::OpIn: - return QV4::__qmljs_in; + return 0; case V4IR::OpAnd: return 0; case V4IR::OpOr: @@ -540,12 +540,26 @@ void InstructionSelection::binop(V4IR::AluOp oper, V4IR::Expr *leftSource, V4IR: Q_ASSERT(leftSource->asTemp() && rightSource->asTemp()); #endif // USE_TYPE_INFO - Instruction::Binop binop; - binop.alu = aluOpFunction(oper); - binop.lhs = getParam(leftSource); - binop.rhs = getParam(rightSource); - binop.result = getResultParam(target); - addInstruction(binop); + if (oper == V4IR::OpInstanceof || oper == V4IR::OpIn || oper == V4IR::OpAdd) { + Instruction::BinopContext binop; + if (oper == V4IR::OpInstanceof) + binop.alu = QV4::__qmljs_instanceof; + else if (oper == V4IR::OpIn) + binop.alu = QV4::__qmljs_in; + else + binop.alu = QV4::__qmljs_add; + binop.lhs = getParam(leftSource); + binop.rhs = getParam(rightSource); + binop.result = getResultParam(target); + addInstruction(binop); + } else { + Instruction::Binop binop; + binop.alu = aluOpFunction(oper); + binop.lhs = getParam(leftSource); + binop.rhs = getParam(rightSource); + binop.result = getResultParam(target); + addInstruction(binop); + } } void InstructionSelection::inplaceNameOp(V4IR::AluOp oper, V4IR::Temp *rightSource, const QString &targetName) diff --git a/src/qml/qml/v4/moth/qv4vme_moth.cpp b/src/qml/qml/v4/moth/qv4vme_moth.cpp index 678d0edc4f..a06ce4139a 100644 --- a/src/qml/qml/v4/moth/qv4vme_moth.cpp +++ b/src/qml/qml/v4/moth/qv4vme_moth.cpp @@ -502,9 +502,13 @@ QV4::Value VME::run(QV4::ExecutionContext *context, const uchar *&code, MOTH_END_INSTR(Unop) MOTH_BEGIN_INSTR(Binop) - instr.alu(context, VALUEPTR(instr.result), VALUE(instr.lhs), VALUE(instr.rhs)); + instr.alu(VALUEPTR(instr.result), VALUE(instr.lhs), VALUE(instr.rhs)); MOTH_END_INSTR(Binop) + MOTH_BEGIN_INSTR(BinopContext) + instr.alu(context, VALUEPTR(instr.result), VALUE(instr.lhs), VALUE(instr.rhs)); + MOTH_END_INSTR(BinopContext) + MOTH_BEGIN_INSTR(AddNumberParams) QV4::Value lhs = VALUE(instr.lhs); QV4::Value rhs = VALUE(instr.rhs); diff --git a/src/qml/qml/v4/qv4context.cpp b/src/qml/qml/v4/qv4context.cpp index ed01548410..ce947e51e8 100644 --- a/src/qml/qml/v4/qv4context.cpp +++ b/src/qml/qml/v4/qv4context.cpp @@ -543,7 +543,7 @@ void ExecutionContext::inplaceBitOp(String *name, const Value &value, BinOp op) { Value lhs = getProperty(name); Value result; - op(this, &result, lhs, value); + op(&result, lhs, value); setProperty(name, result); } diff --git a/src/qml/qml/v4/qv4isel_masm.cpp b/src/qml/qml/v4/qv4isel_masm.cpp index 23688dbb82..4317ba0d54 100644 --- a/src/qml/qml/v4/qv4isel_masm.cpp +++ b/src/qml/qml/v4/qv4isel_masm.cpp @@ -351,13 +351,17 @@ void Assembler::leaveStandardStackFrame(int locals) #define OP(op) \ - { isel_stringIfy(op), op, 0, 0 } + { isel_stringIfy(op), op, 0, 0, 0 } +#define OPCONTEXT(op) \ + { isel_stringIfy(op), 0, op, 0, 0 } #define INLINE_OP(op, memOp, immOp) \ - { isel_stringIfy(op), op, memOp, immOp } + { isel_stringIfy(op), op, 0, memOp, immOp } +#define INLINE_OPCONTEXT(op, memOp, immOp) \ + { isel_stringIfy(op), 0, op, memOp, immOp } #define NULL_OP \ - { 0, 0, 0, 0 } + { 0, 0, 0, 0, 0 } const Assembler::BinaryOperationInfo Assembler::binaryOperations[QQmlJS::V4IR::LastAluOp + 1] = { NULL_OP, // OpInvalid @@ -373,7 +377,7 @@ const Assembler::BinaryOperationInfo Assembler::binaryOperations[QQmlJS::V4IR::L INLINE_OP(__qmljs_bit_or, &Assembler::inline_or32, &Assembler::inline_or32), // OpBitOr INLINE_OP(__qmljs_bit_xor, &Assembler::inline_xor32, &Assembler::inline_xor32), // OpBitXor - INLINE_OP(__qmljs_add, &Assembler::inline_add32, &Assembler::inline_add32), // OpAdd + INLINE_OPCONTEXT(__qmljs_add, &Assembler::inline_add32, &Assembler::inline_add32), // OpAdd INLINE_OP(__qmljs_sub, &Assembler::inline_sub32, &Assembler::inline_sub32), // OpSub INLINE_OP(__qmljs_mul, &Assembler::inline_mul32, &Assembler::inline_mul32), // OpMul @@ -393,8 +397,8 @@ const Assembler::BinaryOperationInfo Assembler::binaryOperations[QQmlJS::V4IR::L OP(__qmljs_se), // OpStrictEqual OP(__qmljs_sne), // OpStrictNotEqual - OP(__qmljs_instanceof), // OpInstanceof - OP(__qmljs_in), // OpIn + OPCONTEXT(__qmljs_instanceof), // OpInstanceof + OPCONTEXT(__qmljs_in), // OpIn NULL_OP, // OpAnd NULL_OP // OpOr @@ -403,7 +407,7 @@ const Assembler::BinaryOperationInfo Assembler::binaryOperations[QQmlJS::V4IR::L void Assembler::generateBinOp(V4IR::AluOp operation, V4IR::Temp* target, V4IR::Temp *left, V4IR::Temp *right) { const BinaryOperationInfo& info = binaryOperations[operation]; - if (!info.fallbackImplementation) { + if (!info.fallbackImplementation && !info.contextImplementation) { assert(!"unreachable"); return; } @@ -481,8 +485,12 @@ void Assembler::generateBinOp(V4IR::AluOp operation, V4IR::Temp* target, V4IR::T } // Fallback - generateFunctionCallImp(Assembler::Void, info.name, info.fallbackImplementation, ContextRegister, - Assembler::PointerToValue(target), Assembler::Reference(left), Assembler::Reference(right)); + if (info.contextImplementation) + generateFunctionCallImp(Assembler::Void, info.name, info.contextImplementation, ContextRegister, + Assembler::PointerToValue(target), Assembler::Reference(left), Assembler::Reference(right)); + else + generateFunctionCallImp(Assembler::Void, info.name, info.fallbackImplementation, + Assembler::PointerToValue(target), Assembler::Reference(left), Assembler::Reference(right)); if (binOpFinished.isSet()) binOpFinished.link(this); diff --git a/src/qml/qml/v4/qv4isel_masm_p.h b/src/qml/qml/v4/qv4isel_masm_p.h index b53b0e5c74..fa14ffac62 100644 --- a/src/qml/qml/v4/qv4isel_masm_p.h +++ b/src/qml/qml/v4/qv4isel_masm_p.h @@ -597,6 +597,7 @@ public: struct BinaryOperationInfo { const char *name; QV4::BinOp fallbackImplementation; + QV4::BinOpContext contextImplementation; MemRegBinOp inlineMemRegOp; ImmRegBinOp inlineImmRegOp; }; diff --git a/src/qml/qml/v4/qv4object.cpp b/src/qml/qml/v4/qv4object.cpp index 16b57871af..edfb535e7a 100644 --- a/src/qml/qml/v4/qv4object.cpp +++ b/src/qml/qml/v4/qv4object.cpp @@ -162,11 +162,11 @@ void Object::putValue(Property *pd, PropertyAttributes attrs, const Value &value } -void Object::inplaceBinOp(ExecutionContext *ctx, BinOp op, String *name, const Value &rhs) +void Object::inplaceBinOp(ExecutionContext *, BinOp op, String *name, const Value &rhs) { Value v = get(name); Value result; - op(ctx, &result, v, rhs); + op(&result, v, rhs); put(name, result); } @@ -177,6 +177,30 @@ void Object::inplaceBinOp(ExecutionContext *ctx, BinOp op, const Value &index, c bool hasProperty = false; Value v = getIndexed(idx, &hasProperty); Value result; + op(&result, v, rhs); + putIndexed(idx, result); + return; + } + String *name = index.toString(ctx); + assert(name); + inplaceBinOp(ctx, op, name, rhs); +} + +void Object::inplaceBinOp(ExecutionContext *ctx, BinOpContext op, String *name, const Value &rhs) +{ + Value v = get(name); + Value result; + op(ctx, &result, v, rhs); + put(name, result); +} + +void Object::inplaceBinOp(ExecutionContext *ctx, BinOpContext op, const Value &index, const Value &rhs) +{ + uint idx = index.asArrayIndex(); + if (idx < UINT_MAX) { + bool hasProperty = false; + Value v = getIndexed(idx, &hasProperty); + Value result; op(ctx, &result, v, rhs); putIndexed(idx, result); return; diff --git a/src/qml/qml/v4/qv4object_p.h b/src/qml/qml/v4/qv4object_p.h index a6f1c04abd..8d064adcaa 100644 --- a/src/qml/qml/v4/qv4object_p.h +++ b/src/qml/qml/v4/qv4object_p.h @@ -154,8 +154,10 @@ struct Q_QML_EXPORT Object: Managed { void putValue(Property *pd, PropertyAttributes attrs, const Value &value); - void inplaceBinOp(ExecutionContext *ctx, BinOp op, String *name, const Value &rhs); + void inplaceBinOp(ExecutionContext *, BinOp op, String *name, const Value &rhs); void inplaceBinOp(ExecutionContext *ctx, BinOp op, const Value &index, const Value &rhs); + void inplaceBinOp(ExecutionContext *ctx, BinOpContext op, String *name, const Value &rhs); + void inplaceBinOp(ExecutionContext *ctx, BinOpContext op, const Value &index, const Value &rhs); /* The spec default: Writable: true, Enumerable: false, Configurable: true */ void defineDefaultProperty(String *name, Value value); diff --git a/src/qml/qml/v4/qv4runtime.cpp b/src/qml/qml/v4/qv4runtime.cpp index d974ad5296..6df48fcea6 100644 --- a/src/qml/qml/v4/qv4runtime.cpp +++ b/src/qml/qml/v4/qv4runtime.cpp @@ -233,7 +233,10 @@ void __qmljs_inplace_bit_xor_name(ExecutionContext *ctx, String *name, const Val void __qmljs_inplace_add_name(ExecutionContext *ctx, String *name, const Value &value) { - ctx->inplaceBitOp(name, value, __qmljs_add); + Value lhs = ctx->getProperty(name); + Value result; + __qmljs_add(ctx, &result, lhs, value); + ctx->setProperty(name, result); } void __qmljs_inplace_sub_name(ExecutionContext *ctx, String *name, const Value &value) diff --git a/src/qml/qml/v4/qv4runtime_p.h b/src/qml/qml/v4/qv4runtime_p.h index fb346029f0..52a8925a47 100644 --- a/src/qml/qml/v4/qv4runtime_p.h +++ b/src/qml/qml/v4/qv4runtime_p.h @@ -187,29 +187,30 @@ void __qmljs_delete_name(QV4::ExecutionContext *ctx, QV4::Value *result, QV4::St void Q_NORETURN __qmljs_throw(QV4::ExecutionContext*, const QV4::Value &value); // binary operators -typedef void (*BinOp)(QV4::ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +typedef void (*BinOp)(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +typedef void (*BinOpContext)(QV4::ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); void __qmljs_instanceof(QV4::ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); void __qmljs_in(QV4::ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_bit_or(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_bit_xor(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_bit_and(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_add(QV4::ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_sub(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_mul(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_div(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_mod(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_shl(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_shr(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_ushr(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_gt(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_lt(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_ge(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_le(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_eq(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_ne(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_se(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); -void __qmljs_sne(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_add(ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_bit_or(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_bit_xor(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_bit_and(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_sub(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_mul(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_div(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_mod(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_shl(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_shr(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_ushr(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_gt(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_lt(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_ge(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_le(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_eq(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_ne(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_se(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); +void __qmljs_sne(QV4::Value *result, const QV4::Value &left, const QV4::Value &right); void __qmljs_add_helper(QV4::ExecutionContext *ctx, QV4::Value *result, const QV4::Value &left, const QV4::Value &right); @@ -360,7 +361,7 @@ inline void __qmljs_not(QV4::Value *result, const QV4::Value &value) } // binary operators -inline void __qmljs_bit_or(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_bit_or(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -374,7 +375,7 @@ inline void __qmljs_bit_or(QV4::ExecutionContext *, QV4::Value *result, const QV *result = QV4::Value::fromInt32(lval | rval); } -inline void __qmljs_bit_xor(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_bit_xor(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -388,7 +389,7 @@ inline void __qmljs_bit_xor(QV4::ExecutionContext *, QV4::Value *result, const Q *result = QV4::Value::fromInt32(lval ^ rval); } -inline void __qmljs_bit_and(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_bit_and(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -419,7 +420,7 @@ inline void __qmljs_add(QV4::ExecutionContext *ctx, QV4::Value *result, const QV __qmljs_add_helper(ctx, result, left, right); } -inline void __qmljs_sub(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_sub(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -433,7 +434,7 @@ inline void __qmljs_sub(QV4::ExecutionContext *, QV4::Value *result, const QV4:: *result = QV4::Value::fromDouble(lval - rval); } -inline void __qmljs_mul(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_mul(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -447,7 +448,7 @@ inline void __qmljs_mul(QV4::ExecutionContext *, QV4::Value *result, const QV4:: *result = QV4::Value::fromDouble(lval * rval); } -inline void __qmljs_div(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_div(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -456,7 +457,7 @@ inline void __qmljs_div(QV4::ExecutionContext *, QV4::Value *result, const QV4:: *result = QV4::Value::fromDouble(lval / rval); } -inline void __qmljs_mod(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_mod(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -473,7 +474,7 @@ inline void __qmljs_mod(QV4::ExecutionContext *, QV4::Value *result, const QV4:: *result = QV4::Value::fromDouble(std::fmod(lval, rval)); } -inline void __qmljs_shl(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_shl(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -487,7 +488,7 @@ inline void __qmljs_shl(QV4::ExecutionContext *, QV4::Value *result, const QV4:: *result = QV4::Value::fromInt32(lval << rval); } -inline void __qmljs_shr(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_shr(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -501,7 +502,7 @@ inline void __qmljs_shr(QV4::ExecutionContext *, QV4::Value *result, const QV4:: *result = QV4::Value::fromInt32(lval >> rval); } -inline void __qmljs_ushr(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_ushr(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -520,49 +521,49 @@ inline void __qmljs_ushr(QV4::ExecutionContext *, QV4::Value *result, const QV4: *result = QV4::Value::fromInt32(res); } -inline void __qmljs_gt(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_gt(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); *result = QV4::Value::fromBoolean(__qmljs_cmp_gt(left, right)); } -inline void __qmljs_lt(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_lt(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); *result = QV4::Value::fromBoolean(__qmljs_cmp_lt(left, right)); } -inline void __qmljs_ge(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_ge(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); *result = QV4::Value::fromBoolean(__qmljs_cmp_ge(left, right)); } -inline void __qmljs_le(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_le(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); *result = QV4::Value::fromBoolean(__qmljs_cmp_le(left, right)); } -inline void __qmljs_eq(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_eq(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); *result = QV4::Value::fromBoolean(__qmljs_cmp_eq(left, right)); } -inline void __qmljs_ne(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_ne(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); *result = QV4::Value::fromBoolean(!__qmljs_cmp_eq(left, right)); } -inline void __qmljs_se(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_se(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); @@ -570,7 +571,7 @@ inline void __qmljs_se(QV4::ExecutionContext *, QV4::Value *result, const QV4::V *result = QV4::Value::fromBoolean(r); } -inline void __qmljs_sne(QV4::ExecutionContext *, QV4::Value *result, const QV4::Value &left, const QV4::Value &right) +inline void __qmljs_sne(QV4::Value *result, const QV4::Value &left, const QV4::Value &right) { TRACE2(left, right); |