Lines Matching refs:lit
1381 // Returns true if it added instructions to 'cu' to divide 'rl_src' by 'lit'
1384 RegLocation rl_src, RegLocation rl_dest, int lit) {
1385 if ((lit < 2) || ((cu_->instruction_set != kThumb2) && !IsPowerOfTwo(lit))) {
1389 if ((cu_->instruction_set == kThumb2) && !IsPowerOfTwo(lit)) {
1390 return SmallLiteralDivRem(dalvik_opcode, is_div, rl_src, rl_dest, lit);
1392 int k = LowestSetBit(lit);
1401 if (lit == 2) {
1415 if (lit == 2) {
1418 OpRegRegImm(kOpAnd, t_reg2, t_reg2, lit -1);
1424 OpRegRegImm(kOpAnd, t_reg2, t_reg2, lit - 1);
1432 // Returns true if it added instructions to 'cu' to multiply 'rl_src' by 'lit'
1434 bool Mir2Lir::HandleEasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) {
1439 if (lit < 2) {
1442 } else if (IsPowerOfTwo(lit)) {
1444 } else if (IsPopCountLE2(lit)) {
1446 } else if (IsPowerOfTwo(lit + 1)) {
1455 OpRegRegImm(kOpLsl, rl_result.low_reg, rl_src.low_reg, LowestSetBit(lit));
1458 int first_bit = LowestSetBit(lit);
1459 int second_bit = LowestSetBit(lit ^ (1 << first_bit));
1460 GenMultiplyByTwoBitMultiplier(rl_src, rl_result, lit, first_bit, second_bit);
1464 // TUNING: rsb dst, src, src lsl#LowestSetBit(lit + 1)
1466 OpRegRegImm(kOpLsl, t_reg, rl_src.low_reg, LowestSetBit(lit + 1));
1474 int lit) {
1486 OpRegRegImm(kOpRsub, rl_result.low_reg, rl_src.low_reg, lit);
1489 OpRegImm(kOpAdd, rl_result.low_reg, lit);
1497 lit = -lit;
1509 if (HandleEasyMultiply(rl_src, rl_dest, lit)) {
1536 lit &= 31;
1543 lit &= 31;
1550 lit &= 31;
1563 if (lit == 0) {
1575 if (HandleEasyDivRem(opcode, is_div, rl_src, rl_dest, lit)) {
1580 rl_result = GenDivRemLit(rl_dest, rl_src.low_reg, lit, is_div);
1586 CallRuntimeHelperRegImm(func_offset, TargetReg(kArg0), lit, false);
1601 if (shift_op && (lit == 0)) {
1604 OpRegRegImm(op, rl_result.low_reg, rl_src.low_reg, lit);