arm: implement the CONTEXTIDR_EL2 system reg.

This commit is contained in:
Curtis Dunham 2015-05-26 03:21:45 -04:00
parent a22c29b263
commit e590f0d1ef
2 changed files with 14 additions and 8 deletions

View file

@ -1334,6 +1334,8 @@ bitset<NUM_MISCREG_INFOS> miscRegInfo[NUM_MISCREGS] = {
bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")),
// MISCREG_CBAR_EL1 // MISCREG_CBAR_EL1
bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")),
// MISCREG_CONTEXTIDR_EL2
bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")),
// Dummy registers // Dummy registers
// MISCREG_NOP // MISCREG_NOP
@ -3343,6 +3345,8 @@ decodeAArch64SysReg(unsigned op0, unsigned op1,
switch (crm) { switch (crm) {
case 0: case 0:
switch (op2) { switch (op2) {
case 1:
return MISCREG_CONTEXTIDR_EL2;
case 2: case 2:
return MISCREG_TPIDR_EL2; return MISCREG_TPIDR_EL2;
} }

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2010-2014 ARM Limited * Copyright (c) 2010-2015 ARM Limited
* All rights reserved * All rights reserved
* *
* The license below extends only to copyright in the software and shall * The license below extends only to copyright in the software and shall
@ -663,16 +663,17 @@ namespace ArmISA
MISCREG_CPUMERRSR_EL1, // 596 MISCREG_CPUMERRSR_EL1, // 596
MISCREG_L2MERRSR_EL1, // 597 MISCREG_L2MERRSR_EL1, // 597
MISCREG_CBAR_EL1, // 598 MISCREG_CBAR_EL1, // 598
MISCREG_CONTEXTIDR_EL2, // 599
// Dummy registers // Dummy registers
MISCREG_NOP, // 599 MISCREG_NOP, // 600
MISCREG_RAZ, // 600 MISCREG_RAZ, // 601
MISCREG_CP14_UNIMPL, // 601 MISCREG_CP14_UNIMPL, // 602
MISCREG_CP15_UNIMPL, // 602 MISCREG_CP15_UNIMPL, // 603
MISCREG_A64_UNIMPL, // 603 MISCREG_A64_UNIMPL, // 604
MISCREG_UNKNOWN, // 604 MISCREG_UNKNOWN, // 605
NUM_MISCREGS // 605 NUM_MISCREGS // 606
}; };
enum MiscRegInfo { enum MiscRegInfo {
@ -1344,6 +1345,7 @@ namespace ArmISA
"cpumerrsr_el1", "cpumerrsr_el1",
"l2merrsr_el1", "l2merrsr_el1",
"cbar_el1", "cbar_el1",
"contextidr_el2",
// Dummy registers // Dummy registers
"nop", "nop",