mirror of
https://github.com/open-goal/jak-project
synced 2026-07-07 14:13:45 -04:00
[decompiler] Jak 2 modifications, new all-types code (#1553)
* temp * look at old game types * clean up
This commit is contained in:
@@ -1746,11 +1746,23 @@ std::unique_ptr<AtomicOp> convert_5(const Instruction& i0,
|
||||
const Instruction& i2,
|
||||
const Instruction& i3,
|
||||
const Instruction& i4,
|
||||
int idx) {
|
||||
int idx,
|
||||
GameVersion version) {
|
||||
auto s6 = make_gpr(Reg::S6);
|
||||
|
||||
int process_offset = -1;
|
||||
switch (version) {
|
||||
case GameVersion::Jak1:
|
||||
process_offset = 44;
|
||||
break;
|
||||
case GameVersion::Jak2:
|
||||
process_offset = 48;
|
||||
break;
|
||||
default:
|
||||
ASSERT(false);
|
||||
}
|
||||
if (i0.kind == InstructionKind::LWU && i0.get_dst(0).is_reg(s6) &&
|
||||
i0.get_src(0).get_imm() == 44 && i0.get_src(1).is_reg(s6) &&
|
||||
i0.get_src(0).get_imm() == process_offset && i0.get_src(1).is_reg(s6) &&
|
||||
i1.kind == InstructionKind::MTLO1 && i1.get_src(0).is_reg(s6) &&
|
||||
i2.kind == InstructionKind::LWU && i2.get_dst(0).is_reg(s6) &&
|
||||
i2.get_src(0).get_imm() == 12 && i2.get_src(1).is_reg(s6) &&
|
||||
@@ -2111,7 +2123,7 @@ int convert_block_to_atomic_ops(int begin_idx,
|
||||
|
||||
if (!converted && n_instr >= 5) {
|
||||
// try 5 instructions
|
||||
op = convert_5(instr[0], instr[1], instr[2], instr[3], instr[4], op_idx);
|
||||
op = convert_5(instr[0], instr[1], instr[2], instr[3], instr[4], op_idx, version);
|
||||
if (op) {
|
||||
converted = true;
|
||||
length = 5;
|
||||
|
||||
Reference in New Issue
Block a user