Index: src/mips64/simulator-mips64.cc |
diff --git a/src/mips64/simulator-mips64.cc b/src/mips64/simulator-mips64.cc |
index 4298ca0e16cda9f61e8a10293278a910c2f0cea8..254d4f6fb27c3925c99c2b641591f223a63d67f7 100644 |
--- a/src/mips64/simulator-mips64.cc |
+++ b/src/mips64/simulator-mips64.cc |
@@ -3923,11 +3923,11 @@ void Simulator::DecodeTypeImmediate(Instruction* instr) { |
// Type 3: instructions using a 26 bytes immediate. (e.g. j, jal). |
void Simulator::DecodeTypeJump(Instruction* instr) { |
// Get current pc. |
- int32_t current_pc = get_pc(); |
+ int64_t current_pc = get_pc(); |
// Get unchanged bits of pc. |
- int32_t pc_high_bits = current_pc & 0xf0000000; |
+ int64_t pc_high_bits = current_pc & 0xfffffffff0000000; |
// Next pc. |
- int32_t next_pc = pc_high_bits | (instr->Imm26Value() << 2); |
+ int64_t next_pc = pc_high_bits | (instr->Imm26Value() << 2); |
// Execute branch delay slot. |
// We don't check for end_sim_pc. First it should not be met as the current pc |