Index: src/mips/disasm-mips.cc |
diff --git a/src/mips/disasm-mips.cc b/src/mips/disasm-mips.cc |
index 48427c54558650e2e3d2a8402af116ac5ba8f227..1d505750a5026626ecf97708c61d36288a248c3f 100644 |
--- a/src/mips/disasm-mips.cc |
+++ b/src/mips/disasm-mips.cc |
@@ -1346,9 +1346,13 @@ void Decoder::DecodeTypeImmediate(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; |