equal
deleted
inserted
replaced
290 |
290 |
291 |
291 |
292 bool LIRGenerator::strength_reduce_multiply(LIR_Opr left, int c, LIR_Opr result, LIR_Opr tmp) { |
292 bool LIRGenerator::strength_reduce_multiply(LIR_Opr left, int c, LIR_Opr result, LIR_Opr tmp) { |
293 assert(left != result, "should be different registers"); |
293 assert(left != result, "should be different registers"); |
294 if (is_power_of_2(c + 1)) { |
294 if (is_power_of_2(c + 1)) { |
295 __ shift_left(left, log2_intptr(c + 1), result); |
295 __ shift_left(left, log2_int(c + 1), result); |
296 __ sub(result, left, result); |
296 __ sub(result, left, result); |
297 return true; |
297 return true; |
298 } else if (is_power_of_2(c - 1)) { |
298 } else if (is_power_of_2(c - 1)) { |
299 __ shift_left(left, log2_intptr(c - 1), result); |
299 __ shift_left(left, log2_int(c - 1), result); |
300 __ add(result, left, result); |
300 __ add(result, left, result); |
301 return true; |
301 return true; |
302 } |
302 } |
303 return false; |
303 return false; |
304 } |
304 } |