Index: src/ppc/simulator-ppc.cc |
diff --git a/src/ppc/simulator-ppc.cc b/src/ppc/simulator-ppc.cc |
index e3761579b038515674ced3a0221af19d4f3a7f14..058632847dca58362291dade0e37c174d276f153 100644 |
--- a/src/ppc/simulator-ppc.cc |
+++ b/src/ppc/simulator-ppc.cc |
@@ -1623,7 +1623,8 @@ void Simulator::ExecuteBranchConditional(Instruction* instr, BCType type) { |
// Handle execution based on instruction types. |
void Simulator::ExecuteExt1(Instruction* instr) { |
- switch (instr->Bits(10, 1) << 1) { |
+ uint32_t opcode = EXT1 | instr->BitField(10, 1); |
+ switch (opcode) { |
case MCRF: |
UNIMPLEMENTED(); // Not used by V8. |
case BCLRX: |
@@ -1678,7 +1679,7 @@ void Simulator::ExecuteExt1(Instruction* instr) { |
bool Simulator::ExecuteExt2_10bit(Instruction* instr) { |
bool found = true; |
- int opcode = instr->Bits(10, 1) << 1; |
+ uint32_t opcode = EXT2 | instr->BitField(10, 1); |
switch (opcode) { |
case SRWX: { |
int rs = instr->RSValue(); |
@@ -1949,7 +1950,7 @@ bool Simulator::ExecuteExt2_10bit(Instruction* instr) { |
if (found) return found; |
found = true; |
- opcode = instr->Bits(10, 2) << 2; |
+ opcode = EXT2 | instr->BitField(10, 2); |
switch (opcode) { |
case SRADIX: { |
int ra = instr->RAValue(); |
@@ -1976,7 +1977,7 @@ bool Simulator::ExecuteExt2_10bit(Instruction* instr) { |
bool Simulator::ExecuteExt2_9bit_part1(Instruction* instr) { |
bool found = true; |
- int opcode = instr->Bits(9, 1) << 1; |
+ uint32_t opcode = EXT2 | instr->BitField(9, 1); |
switch (opcode) { |
case TW: { |
// used for call redirection in simulation mode |
@@ -2234,7 +2235,7 @@ bool Simulator::ExecuteExt2_9bit_part1(Instruction* instr) { |
bool Simulator::ExecuteExt2_9bit_part2(Instruction* instr) { |
bool found = true; |
- int opcode = instr->Bits(9, 1) << 1; |
+ uint32_t opcode = EXT2 | instr->BitField(9, 1); |
switch (opcode) { |
case CNTLZWX: { |
int rs = instr->RSValue(); |
@@ -2752,7 +2753,7 @@ bool Simulator::ExecuteExt2_9bit_part2(Instruction* instr) { |
void Simulator::ExecuteExt2_5bit(Instruction* instr) { |
- int opcode = instr->Bits(5, 1) << 1; |
+ uint32_t opcode = EXT2 | instr->BitField(5, 1); |
switch (opcode) { |
case ISEL: { |
int rt = instr->RTValue(); |
@@ -2785,9 +2786,9 @@ void Simulator::ExecuteExt2(Instruction* instr) { |
void Simulator::ExecuteExt3(Instruction* instr) { |
- int opcode = instr->Bits(10, 1) << 1; |
+ uint32_t opcode = EXT3 | instr->BitField(10, 1); |
switch (opcode) { |
- case FCFID: { |
+ case FCFIDS: { |
// fcfids |
int frt = instr->RTValue(); |
int frb = instr->RBValue(); |
@@ -2796,7 +2797,7 @@ void Simulator::ExecuteExt3(Instruction* instr) { |
set_d_register_from_double(frt, frt_val); |
return; |
} |
- case FCFIDU: { |
+ case FCFIDUS: { |
// fcfidus |
int frt = instr->RTValue(); |
int frb = instr->RBValue(); |
@@ -2811,7 +2812,8 @@ void Simulator::ExecuteExt3(Instruction* instr) { |
void Simulator::ExecuteExt4(Instruction* instr) { |
- switch (instr->Bits(5, 1) << 1) { |
+ uint32_t opcode = EXT4 | instr->BitField(5, 1); |
+ switch (opcode) { |
case FDIV: { |
int frt = instr->RTValue(); |
int fra = instr->RAValue(); |
@@ -2898,7 +2900,7 @@ void Simulator::ExecuteExt4(Instruction* instr) { |
return; |
} |
} |
- int opcode = instr->Bits(10, 1) << 1; |
+ opcode = EXT4 | instr->BitField(10, 1); |
switch (opcode) { |
case FCMPU: { |
int fra = instr->RAValue(); |
@@ -3236,7 +3238,8 @@ void Simulator::ExecuteExt4(Instruction* instr) { |
#if V8_TARGET_ARCH_PPC64 |
void Simulator::ExecuteExt5(Instruction* instr) { |
- switch (instr->Bits(4, 2) << 2) { |
+ uint32_t opcode = EXT5 | instr->BitField(4, 2); |
+ switch (opcode) { |
case RLDICL: { |
int ra = instr->RAValue(); |
int rs = instr->RSValue(); |
@@ -3324,7 +3327,8 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
return; |
} |
} |
- switch (instr->Bits(4, 1) << 1) { |
+ opcode = EXT5 | instr->BitField(4, 1); |
+ switch (opcode) { |
case RLDCL: { |
int ra = instr->RAValue(); |
int rs = instr->RSValue(); |
@@ -3350,7 +3354,8 @@ void Simulator::ExecuteExt5(Instruction* instr) { |
#endif |
void Simulator::ExecuteExt6(Instruction* instr) { |
- switch (instr->Bits(10, 3) << 3) { |
+ uint32_t opcode = EXT6 | instr->BitField(10, 3); |
+ switch (opcode) { |
case XSADDDP: { |
int frt = instr->RTValue(); |
int fra = instr->RAValue(); |
@@ -3396,7 +3401,7 @@ void Simulator::ExecuteExt6(Instruction* instr) { |
} |
void Simulator::ExecuteGeneric(Instruction* instr) { |
- int opcode = instr->OpcodeValue() << 26; |
+ uint32_t opcode = instr->OpcodeField(); |
switch (opcode) { |
case SUBFIC: { |
int rt = instr->RTValue(); |
@@ -3963,7 +3968,7 @@ void Simulator::ExecuteInstruction(Instruction* instr) { |
if (::v8::internal::FLAG_trace_sim) { |
Trace(instr); |
} |
- int opcode = instr->OpcodeValue() << 26; |
+ uint32_t opcode = instr->OpcodeField(); |
if (opcode == TWI) { |
SoftwareInterrupt(instr); |
} else { |