mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
target-xtensa: implement MISC SR
The Miscellaneous Special Registers Option provides zero to four scratch registers within the processor readable and writable by RSR, WSR, and XSR. These registers are privileged. They may be useful for some application-specific exception and interrupt processing tasks in the kernel. The MISC registers are undefined after reset. See ISA, 4.7.3 for details. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
@@ -153,6 +153,7 @@ enum {
|
||||
ICOUNTLEVEL = 237,
|
||||
EXCVADDR = 238,
|
||||
CCOMPARE = 240,
|
||||
MISC = 244,
|
||||
};
|
||||
|
||||
#define PS_INTLEVEL 0xf
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
/* Other, TODO */ \
|
||||
XCHAL_OPTION(XCHAL_HAVE_WINDOWED, XTENSA_OPTION_WINDOWED_REGISTER) | \
|
||||
XCHAL_OPTION(XCHAL_HAVE_DEBUG, XTENSA_OPTION_DEBUG) |\
|
||||
XCHAL_OPTION(XCHAL_NUM_MISC_REGS > 0, XTENSA_OPTION_MISC_SR) | \
|
||||
XCHAL_OPTION(XCHAL_HAVE_THREADPTR, XTENSA_OPTION_THREAD_POINTER) | \
|
||||
XCHAL_OPTION(XCHAL_HAVE_PRID, XTENSA_OPTION_PROCESSOR_ID))
|
||||
|
||||
|
||||
@@ -179,6 +179,10 @@ static const XtensaReg sregnames[256] = {
|
||||
XTENSA_OPTION_TIMER_INTERRUPT),
|
||||
[CCOMPARE + 2] = XTENSA_REG("CCOMPARE2",
|
||||
XTENSA_OPTION_TIMER_INTERRUPT),
|
||||
[MISC] = XTENSA_REG("MISC0", XTENSA_OPTION_MISC_SR),
|
||||
[MISC + 1] = XTENSA_REG("MISC1", XTENSA_OPTION_MISC_SR),
|
||||
[MISC + 2] = XTENSA_REG("MISC2", XTENSA_OPTION_MISC_SR),
|
||||
[MISC + 3] = XTENSA_REG("MISC3", XTENSA_OPTION_MISC_SR),
|
||||
};
|
||||
|
||||
static const XtensaReg uregnames[256] = {
|
||||
|
||||
Reference in New Issue
Block a user