Skip to content

Commit

Permalink
PPCRec: Further work on support for typed registers in RA
Browse files Browse the repository at this point in the history
Additionally there is no more range limit for virtual RegIDs, making the entire uint16 space available in theory
  • Loading branch information
Exzap committed Feb 5, 2023
1 parent 6a63eb8 commit d8bccfe
Show file tree
Hide file tree
Showing 4 changed files with 159 additions and 212 deletions.
18 changes: 18 additions & 0 deletions src/Cafe/HW/Espresso/Recompiler/IML/IMLInstruction.h
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,24 @@ struct IMLInstruction
operation = 0;
}

void make_r_name(IMLReg regR, IMLName name)
{
cemu_assert_debug(regR.GetBaseFormat() == regR.GetRegFormat()); // for name load/store instructions the register must match the base format
type = PPCREC_IML_TYPE_R_NAME;
operation = PPCREC_IML_OP_ASSIGN;
op_r_name.regR = regR;
op_r_name.name = name;
}

void make_name_r(IMLName name, IMLReg regR)
{
cemu_assert_debug(regR.GetBaseFormat() == regR.GetRegFormat()); // for name load/store instructions the register must match the base format
type = PPCREC_IML_TYPE_NAME_R;
operation = PPCREC_IML_OP_ASSIGN;
op_r_name.regR = regR;
op_r_name.name = name;
}

void make_debugbreak(uint32 currentPPCAddress = 0)
{
make_macro(PPCREC_IML_MACRO_DEBUGBREAK, 0, currentPPCAddress, 0, IMLREG_INVALID);
Expand Down
Loading

0 comments on commit d8bccfe

Please sign in to comment.