Index: src/mips64/disasm-mips64.cc |
diff --git a/src/mips64/disasm-mips64.cc b/src/mips64/disasm-mips64.cc |
index ee624db2f8cab4d92fb4df9d02e74baaeb11c558..0723190871959b507fff262f81c63f36a93ac270 100644 |
--- a/src/mips64/disasm-mips64.cc |
+++ b/src/mips64/disasm-mips64.cc |
@@ -1510,9 +1510,13 @@ void Decoder::DecodeTypeImmediateREGIMM(Instruction* instr) { |
case BGEZ: |
Format(instr, "bgez 'rs, 'imm16u -> 'imm16p4s2"); |
break; |
- case BGEZAL: |
- Format(instr, "bgezal 'rs, 'imm16u -> 'imm16p4s2"); |
+ case BGEZAL: { |
+ if (instr->RsValue() == 0) |
+ Format(instr, "bal 'imm16s -> 'imm16p4s2"); |
+ else |
+ Format(instr, "bgezal 'rs, 'imm16u -> 'imm16p4s2"); |
break; |
+ } |
case BGEZALL: |
Format(instr, "bgezall 'rs, 'imm16u -> 'imm16p4s2"); |
break; |