/art/compiler/dex/quick/arm64/ |
D | int_arm64.cc | 404 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument 405 if ((lit < 0) || (lit >= static_cast<int>(arraysize(magic_table)))) { in SmallLiteralDivRem() 408 DividePattern pattern = magic_table[lit].pattern; in SmallLiteralDivRem() 418 LoadConstant(r_magic, magic_table[lit].magic32); in SmallLiteralDivRem() 431 32 + magic_table[lit].shift); in SmallLiteralDivRem() 437 OpRegRegImm(kOpAsr, r_long_mul, r_long_mul, magic_table[lit].shift); in SmallLiteralDivRem() 448 RegLocation rl_src, RegLocation rl_dest, int64_t lit) { in SmallLiteralDivRem64() argument 449 if ((lit < 0) || (lit >= static_cast<int>(arraysize(magic_table)))) { in SmallLiteralDivRem64() 452 DividePattern pattern = magic_table[lit].pattern; in SmallLiteralDivRem64() 466 if (magic_table[lit].magic64_base >= 0) { in SmallLiteralDivRem64() [all …]
|
D | codegen_arm64.h | 67 RegLocation rl_dest, int lit) OVERRIDE; 69 RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 71 RegLocation rl_src, RegLocation rl_dest, int64_t lit); 72 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 177 RegLocation GenDivRemLit(RegLocation rl_dest, RegStorage reg_lo, int lit, bool is_div) 196 void GenMultiplyByTwoBitMultiplier(RegLocation rl_src, RegLocation rl_result, int lit, 344 RegLocation GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, bool is_div); 348 RegLocation rl_dest, int64_t lit);
|
/art/compiler/dex/quick/ |
D | gen_common.cc | 1575 RegLocation rl_src, RegLocation rl_dest, int lit) { in HandleEasyDivRem() argument 1576 if ((lit < 2) || ((cu_->instruction_set != kThumb2) && !IsPowerOfTwo(lit))) { in HandleEasyDivRem() 1580 if ((cu_->instruction_set == kThumb2) && !IsPowerOfTwo(lit)) { in HandleEasyDivRem() 1581 return SmallLiteralDivRem(dalvik_opcode, is_div, rl_src, rl_dest, lit); in HandleEasyDivRem() 1583 int k = LowestSetBit(lit); in HandleEasyDivRem() 1592 if (lit == 2) { in HandleEasyDivRem() 1606 if (lit == 2) { in HandleEasyDivRem() 1609 OpRegRegImm(kOpAnd, t_reg2, t_reg2, lit -1); in HandleEasyDivRem() 1615 OpRegRegImm(kOpAnd, t_reg2, t_reg2, lit - 1); in HandleEasyDivRem() 1625 bool Mir2Lir::HandleEasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) { in HandleEasyMultiply() argument [all …]
|
D | mir_to_lir.h | 822 RegLocation rl_src, RegLocation rl_dest, int lit); 823 bool HandleEasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit); 873 RegLocation rl_src, int lit); 1143 RegLocation rl_src, RegLocation rl_dest, int lit) = 0; 1144 virtual bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) = 0; 1289 virtual RegLocation GenDivRemLit(RegLocation rl_dest, RegStorage reg_lo, int lit, 1308 virtual RegLocation GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, 1360 virtual void GenMultiplyByTwoBitMultiplier(RegLocation rl_src, RegLocation rl_result, int lit,
|
/art/compiler/dex/quick/arm/ |
D | int_arm.cc | 493 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument 494 if ((lit < 0) || (lit >= static_cast<int>(sizeof(magic_table)/sizeof(magic_table[0])))) { in SmallLiteralDivRem() 497 DividePattern pattern = magic_table[lit].pattern; in SmallLiteralDivRem() 503 LoadConstant(r_magic, magic_table[lit].magic); in SmallLiteralDivRem() 521 EncodeShift(kArmAsr, magic_table[lit].shift)); in SmallLiteralDivRem() 527 EncodeShift(kArmAsr, magic_table[lit].shift)); in SmallLiteralDivRem() 540 bool canEasyMultiply = GetEasyMultiplyTwoOps(lit, ops); in SmallLiteralDivRem() 552 bool ArmMir2Lir::GetEasyMultiplyOp(int lit, ArmMir2Lir::EasyMultiplyOp* op) { in GetEasyMultiplyOp() argument 553 if (lit == 0) { in GetEasyMultiplyOp() 561 if (IsPowerOfTwo(lit)) { in GetEasyMultiplyOp() [all …]
|
D | codegen_arm.h | 31 RegLocation rl_dest, int lit); 32 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 113 RegLocation GenDivRemLit(RegLocation rl_dest, RegStorage reg_lo, int lit, bool is_div); 130 void GenMultiplyByTwoBitMultiplier(RegLocation rl_src, RegLocation rl_result, int lit, 205 RegLocation GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, bool is_div); 210 bool GetEasyMultiplyOp(int lit, EasyMultiplyOp* op); 211 bool GetEasyMultiplyTwoOps(int lit, EasyMultiplyOp* ops);
|
/art/compiler/dex/quick/mips/ |
D | codegen_mips.h | 31 RegLocation rl_dest, int lit); 32 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 112 RegLocation GenDivRemLit(RegLocation rl_dest, RegStorage reg_lo, int lit, bool is_div); 127 void GenMultiplyByTwoBitMultiplier(RegLocation rl_src, RegLocation rl_result, int lit, 194 RegLocation GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, bool is_div);
|
D | int_mips.cc | 250 RegLocation MipsMir2Lir::GenDivRemLit(RegLocation rl_dest, RegStorage reg1, int lit, in GenDivRemLit() argument 253 NewLIR3(kMipsAddiu, t_reg.GetReg(), rZERO, lit); in GenDivRemLit() 271 RegLocation MipsMir2Lir::GenDivRemLit(RegLocation rl_dest, RegLocation rl_src1, int lit, bool is_di… in GenDivRemLit() argument 343 RegLocation rl_result, int lit, in GenMultiplyByTwoBitMultiplier() argument 375 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument 380 bool MipsMir2Lir::EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) { in EasyMultiply() argument
|
/art/compiler/dex/quick/x86/ |
D | codegen_x86.h | 68 RegLocation rl_dest, int lit) OVERRIDE; 69 bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE; 231 RegLocation GenDivRemLit(RegLocation rl_dest, RegStorage reg_lo, int lit, bool is_div) OVERRIDE; 245 void GenMultiplyByTwoBitMultiplier(RegLocation rl_src, RegLocation rl_result, int lit, 740 RegLocation GenDivRemLit(RegLocation rl_dest, RegLocation rl_src, int lit, bool is_div);
|
D | int_x86.cc | 596 RegLocation X86Mir2Lir::GenDivRemLit(RegLocation rl_dest, RegStorage reg_lo, int lit, bool is_div) { in GenDivRemLit() argument 1109 RegLocation rl_result, int lit, in GenMultiplyByTwoBitMultiplier() argument 1242 RegLocation rl_src, RegLocation rl_dest, int lit) { in SmallLiteralDivRem() argument 1247 bool X86Mir2Lir::EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) { in EasyMultiply() argument
|