mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-03-29 09:26:56 +00:00
target/arm: Restore Qemu's organization of coprocessor registers
These changes were mostly made in upstream unicorn for what I can guess, was to support old versions of MSVC's compiler. This is also a pain to maintain, since everything needs to be done manually and can be a source of errors. It also makes it take more work than it needs to, to backport changes from qemu. Because of that, this change restores Qemu's organization of the coprocessor registers.
This commit is contained in:
parent
f116560d2c
commit
5075a0158a
|
@ -47,35 +47,48 @@ static uint64_t a57_a53_l2ctlr_read(CPUARMState *env, const ARMCPRegInfo *ri)
|
|||
|
||||
static const ARMCPRegInfo cortex_a72_a57_a53_cp_reginfo[] = {
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
{ "L2CTLR_EL1", 0,11,0, 3,1,2, ARM_CP_STATE_AA64,
|
||||
0, PL1_RW, 0, NULL, 0, 0, {0, 0},
|
||||
NULL, a57_a53_l2ctlr_read, arm_cp_write_ignore, },
|
||||
{ "L2CTLR", 15,9,0, 0,1,2, 0,
|
||||
0, PL1_RW, 0, NULL, 0, 0, {0, 0},
|
||||
NULL, a57_a53_l2ctlr_read, arm_cp_write_ignore, },
|
||||
{ .name = "L2CTLR_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 11, .crm = 0, .opc2 = 2,
|
||||
.access = PL1_RW, .readfn = a57_a53_l2ctlr_read,
|
||||
.writefn = arm_cp_write_ignore },
|
||||
{ .name = "L2CTLR",
|
||||
.cp = 15, .opc1 = 1, .crn = 9, .crm = 0, .opc2 = 2,
|
||||
.access = PL1_RW, .readfn = a57_a53_l2ctlr_read,
|
||||
.writefn = arm_cp_write_ignore },
|
||||
#endif
|
||||
{ "L2ECTLR_EL1", 0,11,0, 3,1,3, ARM_CP_STATE_AA64,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0, },
|
||||
{ "L2ECTLR", 15,9,0, 0,1,3, 0,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0, },
|
||||
{ "L2ACTLR", 0,15,0, 3,1,0, ARM_CP_STATE_BOTH,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0 },
|
||||
{ "CPUACTLR_EL1", 0,15,2, 3,1,0, ARM_CP_STATE_AA64,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0 },
|
||||
{ "CPUACTLR", 15,0,15, 0,0,0, 0,
|
||||
ARM_CP_CONST | ARM_CP_64BIT, PL1_RW, 0, NULL, 0, },
|
||||
{ "CPUECTLR_EL1", 0,15,2, 3,1,1, ARM_CP_STATE_AA64,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0, },
|
||||
{ "CPUECTLR", 15,0,15, 0,1,0, 0,
|
||||
ARM_CP_CONST | ARM_CP_64BIT, PL1_RW, 0, NULL, 0, },
|
||||
{ "CPUMERRSR_EL1", 0,15,2, 3,1,2, ARM_CP_STATE_AA64,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0 },
|
||||
{ "CPUMERRSR", 15,0,15, 0,2,0, 0,
|
||||
ARM_CP_CONST | ARM_CP_64BIT, PL1_RW, 0, NULL, 0 },
|
||||
{ "L2MERRSR_EL1", 0,15,2, 3,1,3, ARM_CP_STATE_AA64,
|
||||
ARM_CP_CONST, PL1_RW, 0, NULL, 0 },
|
||||
{ "L2MERRSR", 15,0,15, 0,3,0, 0,
|
||||
ARM_CP_CONST | ARM_CP_64BIT, PL1_RW, 0, NULL, 0 },
|
||||
{ .name = "L2ECTLR_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 11, .crm = 0, .opc2 = 3,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "L2ECTLR",
|
||||
.cp = 15, .opc1 = 1, .crn = 9, .crm = 0, .opc2 = 3,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "L2ACTLR", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 15, .crm = 0, .opc2 = 0,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "CPUACTLR_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 15, .crm = 2, .opc2 = 0,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "CPUACTLR",
|
||||
.cp = 15, .opc1 = 0, .crm = 15,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST | ARM_CP_64BIT, .resetvalue = 0 },
|
||||
{ .name = "CPUECTLR_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 15, .crm = 2, .opc2 = 1,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "CPUECTLR",
|
||||
.cp = 15, .opc1 = 1, .crm = 15,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST | ARM_CP_64BIT, .resetvalue = 0 },
|
||||
{ .name = "CPUMERRSR_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 15, .crm = 2, .opc2 = 2,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "CPUMERRSR",
|
||||
.cp = 15, .opc1 = 2, .crm = 15,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST | ARM_CP_64BIT, .resetvalue = 0 },
|
||||
{ .name = "L2MERRSR_EL1", .state = ARM_CP_STATE_AA64,
|
||||
.opc0 = 3, .opc1 = 1, .crn = 15, .crm = 2, .opc2 = 3,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST, .resetvalue = 0 },
|
||||
{ .name = "L2MERRSR",
|
||||
.cp = 15, .opc1 = 3, .crm = 15,
|
||||
.access = PL1_RW, .type = ARM_CP_CONST | ARM_CP_64BIT, .resetvalue = 0 },
|
||||
REGINFO_SENTINEL
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue