mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-22 20:45:29 +00:00
Removed hardcoded CP0C3_ULRI (#1098)
* activate CP0C3_ULRI for CONFIG3, mips * updated with mips patches * updated with mips patches * remove hardcoded config3 * git ignore vscode * fix spacing issue and turn on floating point Backports most of commit 24f55a7973278f20f0de21b904851d99d4716263 from unicorn. Ignores internal core modifications, as this would be special-casing non-upstreamed behavior.
This commit is contained in:
parent
deeeb1d0b9
commit
038b4f3345
|
@ -158,7 +158,9 @@ module Mips =
|
||||||
let UC_MIPS_REG_MPL0 = 134
|
let UC_MIPS_REG_MPL0 = 134
|
||||||
let UC_MIPS_REG_MPL1 = 135
|
let UC_MIPS_REG_MPL1 = 135
|
||||||
let UC_MIPS_REG_MPL2 = 136
|
let UC_MIPS_REG_MPL2 = 136
|
||||||
let UC_MIPS_REG_ENDING = 137
|
let UC_MIPS_REG_CP0_CONFIG3 = 137
|
||||||
|
let UC_MIPS_REG_CP0_USERLOCAL = 138
|
||||||
|
let UC_MIPS_REG_ENDING = 139
|
||||||
let UC_MIPS_REG_ZERO = 2
|
let UC_MIPS_REG_ZERO = 2
|
||||||
let UC_MIPS_REG_AT = 3
|
let UC_MIPS_REG_AT = 3
|
||||||
let UC_MIPS_REG_V0 = 4
|
let UC_MIPS_REG_V0 = 4
|
||||||
|
|
|
@ -153,7 +153,9 @@ const (
|
||||||
MIPS_REG_MPL0 = 134
|
MIPS_REG_MPL0 = 134
|
||||||
MIPS_REG_MPL1 = 135
|
MIPS_REG_MPL1 = 135
|
||||||
MIPS_REG_MPL2 = 136
|
MIPS_REG_MPL2 = 136
|
||||||
MIPS_REG_ENDING = 137
|
MIPS_REG_CP0_CONFIG3 = 137
|
||||||
|
MIPS_REG_CP0_USERLOCAL = 138
|
||||||
|
MIPS_REG_ENDING = 139
|
||||||
MIPS_REG_ZERO = 2
|
MIPS_REG_ZERO = 2
|
||||||
MIPS_REG_AT = 3
|
MIPS_REG_AT = 3
|
||||||
MIPS_REG_V0 = 4
|
MIPS_REG_V0 = 4
|
||||||
|
|
|
@ -155,7 +155,9 @@ public interface MipsConst {
|
||||||
public static final int UC_MIPS_REG_MPL0 = 134;
|
public static final int UC_MIPS_REG_MPL0 = 134;
|
||||||
public static final int UC_MIPS_REG_MPL1 = 135;
|
public static final int UC_MIPS_REG_MPL1 = 135;
|
||||||
public static final int UC_MIPS_REG_MPL2 = 136;
|
public static final int UC_MIPS_REG_MPL2 = 136;
|
||||||
public static final int UC_MIPS_REG_ENDING = 137;
|
public static final int UC_MIPS_REG_CP0_CONFIG3 = 137;
|
||||||
|
public static final int UC_MIPS_REG_CP0_USERLOCAL = 138;
|
||||||
|
public static final int UC_MIPS_REG_ENDING = 139;
|
||||||
public static final int UC_MIPS_REG_ZERO = 2;
|
public static final int UC_MIPS_REG_ZERO = 2;
|
||||||
public static final int UC_MIPS_REG_AT = 3;
|
public static final int UC_MIPS_REG_AT = 3;
|
||||||
public static final int UC_MIPS_REG_V0 = 4;
|
public static final int UC_MIPS_REG_V0 = 4;
|
||||||
|
|
|
@ -156,7 +156,9 @@ const
|
||||||
UC_MIPS_REG_MPL0 = 134;
|
UC_MIPS_REG_MPL0 = 134;
|
||||||
UC_MIPS_REG_MPL1 = 135;
|
UC_MIPS_REG_MPL1 = 135;
|
||||||
UC_MIPS_REG_MPL2 = 136;
|
UC_MIPS_REG_MPL2 = 136;
|
||||||
UC_MIPS_REG_ENDING = 137;
|
UC_MIPS_REG_CP0_CONFIG3 = 137;
|
||||||
|
UC_MIPS_REG_CP0_USERLOCAL = 138;
|
||||||
|
UC_MIPS_REG_ENDING = 139;
|
||||||
UC_MIPS_REG_ZERO = 2;
|
UC_MIPS_REG_ZERO = 2;
|
||||||
UC_MIPS_REG_AT = 3;
|
UC_MIPS_REG_AT = 3;
|
||||||
UC_MIPS_REG_V0 = 4;
|
UC_MIPS_REG_V0 = 4;
|
||||||
|
|
|
@ -151,7 +151,9 @@ UC_MIPS_REG_P2 = 133
|
||||||
UC_MIPS_REG_MPL0 = 134
|
UC_MIPS_REG_MPL0 = 134
|
||||||
UC_MIPS_REG_MPL1 = 135
|
UC_MIPS_REG_MPL1 = 135
|
||||||
UC_MIPS_REG_MPL2 = 136
|
UC_MIPS_REG_MPL2 = 136
|
||||||
UC_MIPS_REG_ENDING = 137
|
UC_MIPS_REG_CP0_CONFIG3 = 137
|
||||||
|
UC_MIPS_REG_CP0_USERLOCAL = 138
|
||||||
|
UC_MIPS_REG_ENDING = 139
|
||||||
UC_MIPS_REG_ZERO = 2
|
UC_MIPS_REG_ZERO = 2
|
||||||
UC_MIPS_REG_AT = 3
|
UC_MIPS_REG_AT = 3
|
||||||
UC_MIPS_REG_V0 = 4
|
UC_MIPS_REG_V0 = 4
|
||||||
|
|
|
@ -153,7 +153,9 @@ module UnicornEngine
|
||||||
UC_MIPS_REG_MPL0 = 134
|
UC_MIPS_REG_MPL0 = 134
|
||||||
UC_MIPS_REG_MPL1 = 135
|
UC_MIPS_REG_MPL1 = 135
|
||||||
UC_MIPS_REG_MPL2 = 136
|
UC_MIPS_REG_MPL2 = 136
|
||||||
UC_MIPS_REG_ENDING = 137
|
UC_MIPS_REG_CP0_CONFIG3 = 137
|
||||||
|
UC_MIPS_REG_CP0_USERLOCAL = 138
|
||||||
|
UC_MIPS_REG_ENDING = 139
|
||||||
UC_MIPS_REG_ZERO = 2
|
UC_MIPS_REG_ZERO = 2
|
||||||
UC_MIPS_REG_AT = 3
|
UC_MIPS_REG_AT = 3
|
||||||
UC_MIPS_REG_V0 = 4
|
UC_MIPS_REG_V0 = 4
|
||||||
|
|
|
@ -175,6 +175,9 @@ typedef enum UC_MIPS_REG {
|
||||||
UC_MIPS_REG_MPL1,
|
UC_MIPS_REG_MPL1,
|
||||||
UC_MIPS_REG_MPL2,
|
UC_MIPS_REG_MPL2,
|
||||||
|
|
||||||
|
UC_MIPS_REG_CP0_CONFIG3,
|
||||||
|
UC_MIPS_REG_CP0_USERLOCAL,
|
||||||
|
|
||||||
UC_MIPS_REG_ENDING, // <-- mark the end of the list or registers
|
UC_MIPS_REG_ENDING, // <-- mark the end of the list or registers
|
||||||
|
|
||||||
// alias registers
|
// alias registers
|
||||||
|
|
|
@ -83,6 +83,12 @@ int mips_reg_read(struct uc_struct *uc, unsigned int *regs, void **vals, int cou
|
||||||
case UC_MIPS_REG_PC:
|
case UC_MIPS_REG_PC:
|
||||||
*(mipsreg_t *)value = state->active_tc.PC;
|
*(mipsreg_t *)value = state->active_tc.PC;
|
||||||
break;
|
break;
|
||||||
|
case UC_MIPS_REG_CP0_CONFIG3:
|
||||||
|
*(mipsreg_t *)value = MIPS_CPU(uc, mycpu)->env.CP0_Config3;
|
||||||
|
break;
|
||||||
|
case UC_MIPS_REG_CP0_USERLOCAL:
|
||||||
|
*(mipsreg_t *)value = MIPS_CPU(uc, mycpu)->env.active_tc.CP0_UserLocal;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,6 +116,12 @@ int mips_reg_write(struct uc_struct *uc, unsigned int *regs, void *const *vals,
|
||||||
uc->quit_request = true;
|
uc->quit_request = true;
|
||||||
uc_emu_stop(uc);
|
uc_emu_stop(uc);
|
||||||
break;
|
break;
|
||||||
|
case UC_MIPS_REG_CP0_CONFIG3:
|
||||||
|
MIPS_CPU(uc, mycpu)->env.CP0_Config3 = *(mipsreg_t *)value;
|
||||||
|
break;
|
||||||
|
case UC_MIPS_REG_CP0_USERLOCAL:
|
||||||
|
MIPS_CPU(uc, mycpu)->env.active_tc.CP0_UserLocal = *(mipsreg_t *)value;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue