Index: src/ppc/simulator-ppc.cc |
diff --git a/src/ppc/simulator-ppc.cc b/src/ppc/simulator-ppc.cc |
index 0bb2da05ff28d55d932508d19889cfd11c8809d4..9b29004f3d3e041bacfba39061a081108a6558cf 100644 |
--- a/src/ppc/simulator-ppc.cc |
+++ b/src/ppc/simulator-ppc.cc |
@@ -11,6 +11,7 @@ |
#if V8_TARGET_ARCH_PPC |
#include "src/assembler.h" |
+#include "src/base/bits.h" |
#include "src/codegen.h" |
#include "src/disasm.h" |
#include "src/ppc/constants-ppc.h" |
@@ -2998,8 +2999,7 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
int mb = (instr->Bits(10, 6) | (instr->Bit(5) << 5)); |
DCHECK(sh >= 0 && sh <= 63); |
DCHECK(mb >= 0 && mb <= 63); |
- // rotate left |
- uintptr_t result = (rs_val << sh) | (rs_val >> (64 - sh)); |
+ uintptr_t result = base::bits::RotateLeft64(rs_val, sh); |
uintptr_t mask = 0xffffffffffffffff >> mb; |
result &= mask; |
set_register(ra, result); |
@@ -3016,8 +3016,7 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
int me = (instr->Bits(10, 6) | (instr->Bit(5) << 5)); |
DCHECK(sh >= 0 && sh <= 63); |
DCHECK(me >= 0 && me <= 63); |
- // rotate left |
- uintptr_t result = (rs_val << sh) | (rs_val >> (64 - sh)); |
+ uintptr_t result = base::bits::RotateLeft64(rs_val, sh); |
uintptr_t mask = 0xffffffffffffffff << (63 - me); |
result &= mask; |
set_register(ra, result); |
@@ -3034,8 +3033,7 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
int mb = (instr->Bits(10, 6) | (instr->Bit(5) << 5)); |
DCHECK(sh >= 0 && sh <= 63); |
DCHECK(mb >= 0 && mb <= 63); |
- // rotate left |
- uintptr_t result = (rs_val << sh) | (rs_val >> (64 - sh)); |
+ uintptr_t result = base::bits::RotateLeft64(rs_val, sh); |
uintptr_t mask = (0xffffffffffffffff >> mb) & (0xffffffffffffffff << sh); |
result &= mask; |
set_register(ra, result); |
@@ -3052,8 +3050,7 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
int sh = (instr->Bits(15, 11) | (instr->Bit(1) << 5)); |
int mb = (instr->Bits(10, 6) | (instr->Bit(5) << 5)); |
int me = 63 - sh; |
- // rotate left |
- uintptr_t result = (rs_val << sh) | (rs_val >> (64 - sh)); |
+ uintptr_t result = base::bits::RotateLeft64(rs_val, sh); |
uintptr_t mask = 0; |
if (mb < me + 1) { |
uintptr_t bit = 0x8000000000000000 >> mb; |
@@ -3092,8 +3089,7 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
int mb = (instr->Bits(10, 6) | (instr->Bit(5) << 5)); |
DCHECK(sh >= 0 && sh <= 63); |
DCHECK(mb >= 0 && mb <= 63); |
- // rotate left |
- uintptr_t result = (rs_val << sh) | (rs_val >> (64 - sh)); |
+ uintptr_t result = base::bits::RotateLeft64(rs_val, sh); |
uintptr_t mask = 0xffffffffffffffff >> mb; |
result &= mask; |
set_register(ra, result); |
@@ -3268,8 +3264,7 @@ void Simulator::ExecuteGeneric(Instruction* instr) { |
int sh = instr->Bits(15, 11); |
int mb = instr->Bits(10, 6); |
int me = instr->Bits(5, 1); |
- // rotate left |
- uint32_t result = (rs_val << sh) | (rs_val >> (32 - sh)); |
+ uint32_t result = base::bits::RotateLeft32(rs_val, sh); |
int mask = 0; |
if (mb < me + 1) { |
int bit = 0x80000000 >> mb; |
@@ -3311,8 +3306,7 @@ void Simulator::ExecuteGeneric(Instruction* instr) { |
} |
int mb = instr->Bits(10, 6); |
int me = instr->Bits(5, 1); |
- // rotate left |
- uint32_t result = (rs_val << sh) | (rs_val >> (32 - sh)); |
+ uint32_t result = base::bits::RotateLeft32(rs_val, sh); |
int mask = 0; |
if (mb < me + 1) { |
int bit = 0x80000000 >> mb; |