Implement bal

This commit is contained in:
angie 2024-05-12 10:35:13 -04:00 committed by Angie
parent 3ab0edf18a
commit 27130d749f
2 changed files with 9 additions and 0 deletions

View file

@ -1182,6 +1182,7 @@ int main(int argc, char** argv) {
RabbitizerConfig_Cfg.pseudos.pseudoBeqz = false;
RabbitizerConfig_Cfg.pseudos.pseudoBnez = false;
RabbitizerConfig_Cfg.pseudos.pseudoNot = false;
RabbitizerConfig_Cfg.pseudos.pseudoBal = false;
std::vector<std::string> relocatable_sections_ordered{};

View file

@ -638,6 +638,14 @@ bool process_instruction(const RecompPort::Context& context, const RecompPort::C
case InstrId::cpu_break:
print_line("do_break({})", instr_vram);
break;
case InstrId::cpu_bgezall:
is_branch_likely = true;
[[fallthrough]];
case InstrId::cpu_bgezal:
print_indent();
print_branch_condition("if (SIGNED({}{}) >= 0)", ctx_gpr_prefix(rs), rs);
print_func_call(instr.getBranchVramGeneric());
break;
// Cop1 loads/stores
case InstrId::cpu_mtc1: