aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jit/qv4assembler_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-02-21 08:45:09 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-04 07:56:08 +0100
commit72293bf3b0a6a3d6ac30cf472b81fd4844b3d582 (patch)
tree45a7c50f2a556338ce5c390338580e3066eab200 /src/qml/jit/qv4assembler_p.h
parentca056ed3fa25b417bc88786377999b04640b1265 (diff)
Move all binop related code into qv4binop*
Change-Id: I8f96b8d570dd4c0139b0a2e595055b3b2c6dae70 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jit/qv4assembler_p.h')
-rw-r--r--src/qml/jit/qv4assembler_p.h156
1 files changed, 0 insertions, 156 deletions
diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h
index fa9aa4193b..2774b8d8e0 100644
--- a/src/qml/jit/qv4assembler_p.h
+++ b/src/qml/jit/qv4assembler_p.h
@@ -1031,162 +1031,6 @@ public:
generateFunctionCallImp(r, functionName, function, arg1, VoidType(), VoidType(), VoidType(), VoidType());
}
- typedef Jump (Assembler::*MemRegBinOp)(Address, RegisterID);
- typedef Jump (Assembler::*ImmRegBinOp)(TrustedImm32, RegisterID);
-
- struct BinaryOperationInfo {
- const char *name;
- QV4::BinOp fallbackImplementation;
- QV4::BinOpContext contextImplementation;
- MemRegBinOp inlineMemRegOp;
- ImmRegBinOp inlineImmRegOp;
- };
-
- static const BinaryOperationInfo binaryOperations[IR::LastAluOp + 1];
- static const BinaryOperationInfo &binaryOperation(IR::AluOp operation)
- { return binaryOperations[operation]; }
-
- Jump inline_add32(Address addr, RegisterID reg)
- {
-#if HAVE(ALU_OPS_WITH_MEM_OPERAND)
- return branchAdd32(Overflow, addr, reg);
-#else
- load32(addr, ScratchRegister);
- return branchAdd32(Overflow, ScratchRegister, reg);
-#endif
- }
-
- Jump inline_add32(TrustedImm32 imm, RegisterID reg)
- {
- return branchAdd32(Overflow, imm, reg);
- }
-
- Jump inline_sub32(Address addr, RegisterID reg)
- {
-#if HAVE(ALU_OPS_WITH_MEM_OPERAND)
- return branchSub32(Overflow, addr, reg);
-#else
- load32(addr, ScratchRegister);
- return branchSub32(Overflow, ScratchRegister, reg);
-#endif
- }
-
- Jump inline_sub32(TrustedImm32 imm, RegisterID reg)
- {
- return branchSub32(Overflow, imm, reg);
- }
-
- Jump inline_mul32(Address addr, RegisterID reg)
- {
-#if HAVE(ALU_OPS_WITH_MEM_OPERAND)
- return branchMul32(Overflow, addr, reg);
-#else
- load32(addr, ScratchRegister);
- return branchMul32(Overflow, ScratchRegister, reg);
-#endif
- }
-
- Jump inline_mul32(TrustedImm32 imm, RegisterID reg)
- {
- return branchMul32(Overflow, imm, reg, reg);
- }
-
- Jump inline_shl32(Address addr, RegisterID reg)
- {
- load32(addr, ScratchRegister);
- and32(TrustedImm32(0x1f), ScratchRegister);
- lshift32(ScratchRegister, reg);
- return Jump();
- }
-
- Jump inline_shl32(TrustedImm32 imm, RegisterID reg)
- {
- imm.m_value &= 0x1f;
- lshift32(imm, reg);
- return Jump();
- }
-
- Jump inline_shr32(Address addr, RegisterID reg)
- {
- load32(addr, ScratchRegister);
- and32(TrustedImm32(0x1f), ScratchRegister);
- rshift32(ScratchRegister, reg);
- return Jump();
- }
-
- Jump inline_shr32(TrustedImm32 imm, RegisterID reg)
- {
- imm.m_value &= 0x1f;
- rshift32(imm, reg);
- return Jump();
- }
-
- Jump inline_ushr32(Address addr, RegisterID reg)
- {
- load32(addr, ScratchRegister);
- and32(TrustedImm32(0x1f), ScratchRegister);
- urshift32(ScratchRegister, reg);
- return branchTest32(Signed, reg, reg);
- }
-
- Jump inline_ushr32(TrustedImm32 imm, RegisterID reg)
- {
- imm.m_value &= 0x1f;
- urshift32(imm, reg);
- return branchTest32(Signed, reg, reg);
- }
-
- Jump inline_and32(Address addr, RegisterID reg)
- {
-#if HAVE(ALU_OPS_WITH_MEM_OPERAND)
- and32(addr, reg);
-#else
- load32(addr, ScratchRegister);
- and32(ScratchRegister, reg);
-#endif
- return Jump();
- }
-
- Jump inline_and32(TrustedImm32 imm, RegisterID reg)
- {
- and32(imm, reg);
- return Jump();
- }
-
- Jump inline_or32(Address addr, RegisterID reg)
- {
-#if HAVE(ALU_OPS_WITH_MEM_OPERAND)
- or32(addr, reg);
-#else
- load32(addr, ScratchRegister);
- or32(ScratchRegister, reg);
-#endif
- return Jump();
- }
-
- Jump inline_or32(TrustedImm32 imm, RegisterID reg)
- {
- or32(imm, reg);
- return Jump();
- }
-
- Jump inline_xor32(Address addr, RegisterID reg)
- {
-#if HAVE(ALU_OPS_WITH_MEM_OPERAND)
- xor32(addr, reg);
-#else
- load32(addr, ScratchRegister);
- xor32(ScratchRegister, reg);
-#endif
- return Jump();
- }
-
- Jump inline_xor32(TrustedImm32 imm, RegisterID reg)
- {
- xor32(imm, reg);
- return Jump();
- }
-
Pointer toAddress(RegisterID tmpReg, IR::Expr *e, int offset)
{
if (IR::Const *c = e->asConst()) {