#ifndef JAK_DISASSEMBLER_INSTRUCTIONMATCHING_H #define JAK_DISASSEMBLER_INSTRUCTIONMATCHING_H #include "Instruction.h" #include "common/util/MatchParam.h" bool is_no_link_gpr_store(const Instruction& instr, MatchParam size, MatchParam src, MatchParam offset, MatchParam dest); bool is_no_ll_gpr_load(const Instruction& instr, MatchParam size, MatchParam is_signed, MatchParam dst_reg, MatchParam offset, MatchParam mem_reg); bool is_no_ll_fpr_store(const Instruction& instr, MatchParam src, MatchParam offset, MatchParam dest); bool is_no_ll_fpr_load(const Instruction& instr, MatchParam dst_reg, MatchParam offset, MatchParam mem_reg); bool is_gpr_store(const Instruction& instr); bool is_gpr_load(const Instruction& instr, MatchParam is_signed); int32_t get_gpr_store_offset_as_int(const Instruction& instr); bool is_gpr_3(const Instruction& instr, MatchParam kind, MatchParam dst, MatchParam src0, MatchParam src1); bool is_gpr_2_imm_int(const Instruction& instr, MatchParam kind, MatchParam dst, MatchParam src, MatchParam imm); bool is_nop(const Instruction& instr); bool is_jr_ra(const Instruction& instr); Register make_gpr(Reg::Gpr gpr); Register make_fpr(int fpr); bool is_branch(const Instruction& instr, MatchParam likely); bool is_always_branch(const Instruction& instr); #endif // JAK_DISASSEMBLER_INSTRUCTIONMATCHING_H