diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-02-21 08:45:09 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-04 07:56:08 +0100 |
commit | 72293bf3b0a6a3d6ac30cf472b81fd4844b3d582 (patch) | |
tree | 45a7c50f2a556338ce5c390338580e3066eab200 /src/qml/jit/qv4assembler_p.h | |
parent | ca056ed3fa25b417bc88786377999b04640b1265 (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.h | 156 |
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()) { |