forked from Lephenixnoir/fxos
Merge branch 'master' into classification
This commit is contained in:
commit
d943ba12c3
|
@ -0,0 +1 @@
|
|||
cf2bc1870c7ce1bd4f924aa91786a714ce8658e3
|
|
@ -38,51 +38,23 @@ namespace FxOS {
|
|||
class CpuRegister
|
||||
{
|
||||
public:
|
||||
enum CpuRegisterName : int8_t {
|
||||
// clang-format off
|
||||
enum CpuRegisterName: int8_t {
|
||||
/* Value 0 is reserved for special purposes such as "no register" */
|
||||
UNDEFINED = 0,
|
||||
/* Caller-saved general-purpose registers */
|
||||
R0,
|
||||
R1,
|
||||
R2,
|
||||
R3,
|
||||
R4,
|
||||
R5,
|
||||
R6,
|
||||
R7,
|
||||
R0, R1, R2, R3, R4, R5, R6, R7,
|
||||
/* Banked general-purpose registers. fxos does not account for
|
||||
banking identities, these are just for naming and output. */
|
||||
R0B,
|
||||
R1B,
|
||||
R2B,
|
||||
R3B,
|
||||
R4B,
|
||||
R5B,
|
||||
R6B,
|
||||
R7B,
|
||||
R0B, R1B, R2B, R3B, R4B, R5B, R6B, R7B,
|
||||
/* Callee-saved general-purpose registers */
|
||||
R8,
|
||||
R9,
|
||||
R10,
|
||||
R11,
|
||||
R12,
|
||||
R13,
|
||||
R14,
|
||||
R15,
|
||||
R8, R9, R10, R11, R12, R13, R14, R15,
|
||||
/* System registers */
|
||||
MACH,
|
||||
MACL,
|
||||
PR,
|
||||
PC,
|
||||
MACH, MACL, PR, PC,
|
||||
/* Control registers */
|
||||
SR,
|
||||
SSR,
|
||||
SPC,
|
||||
GBR,
|
||||
VBR,
|
||||
DBR,
|
||||
SGR,
|
||||
SR, SSR, SPC, GBR, VBR, DBR, SGR,
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
CpuRegister() = default;
|
||||
|
||||
|
|
14
lib/lang.cpp
14
lib/lang.cpp
|
@ -16,10 +16,16 @@ namespace FxOS {
|
|||
// CPU registers
|
||||
//---
|
||||
|
||||
char const *regnames[] = {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
|
||||
"r0_bank", "r1_bank", "r2_bank", "r3_bank", "r4_bank", "r5_bank", "r6_bank",
|
||||
"r7_bank", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "mach",
|
||||
"macl", "pr", "pc", "sr", "ssr", "spc", "gbr", "vbr", "dbr", "sgr"};
|
||||
// clang-format off
|
||||
char const *regnames[] = {
|
||||
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
|
||||
"r0_bank", "r1_bank", "r2_bank", "r3_bank",
|
||||
"r4_bank", "r5_bank", "r6_bank", "r7_bank",
|
||||
"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
|
||||
"mach", "macl", "pr", "pc",
|
||||
"sr", "ssr", "spc", "gbr", "vbr", "dbr", "sgr"
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
/* Construction from string */
|
||||
CpuRegister::CpuRegister(std::string name)
|
||||
|
|
|
@ -79,16 +79,18 @@ void MemoryRegion::guess_flags() noexcept
|
|||
using R = MemoryRegion;
|
||||
|
||||
/* Basic memory regions */
|
||||
R const R::ROM("ROM", 0x80000000, 0x81ffffff, false);
|
||||
R const R::ROM_P2("ROM_P2", 0xa0000000, 0xa07fffff, false);
|
||||
R const R::RAM("RAM", 0x88000000, 0x881fffff, true);
|
||||
R const R::RAM_P2("RAM_P2", 0xa8000000, 0xa81fffff, true);
|
||||
R const R::RAM_8C("RAM_8C", 0x8c000000, 0x8c7fffff, true);
|
||||
// clang-format off
|
||||
R const R::ROM ("ROM", 0x80000000, 0x81ffffff, false);
|
||||
R const R::ROM_P2 ("ROM_P2", 0xa0000000, 0xa07fffff, false);
|
||||
R const R::RAM ("RAM", 0x88000000, 0x881fffff, true);
|
||||
R const R::RAM_P2 ("RAM_P2", 0xa8000000, 0xa81fffff, true);
|
||||
R const R::RAM_8C ("RAM_8C", 0x8c000000, 0x8c7fffff, true);
|
||||
R const R::RAM_8C_P2("RAM_8C_P2", 0xac000000, 0xac7fffff, true);
|
||||
R const R::RS("RS", 0xfd800000, 0xfd8007ff, true);
|
||||
R const R::ILRAM("ILRAM", 0xe5200000, 0xe5203fff, true);
|
||||
R const R::XRAM("XRAM", 0xe5007000, 0xe5008fff, true);
|
||||
R const R::YRAM("YRAM", 0xe5017000, 0xe5018fff, true);
|
||||
R const R::RS ("RS", 0xfd800000, 0xfd8007ff, true);
|
||||
R const R::ILRAM ("ILRAM", 0xe5200000, 0xe5203fff, true);
|
||||
R const R::XRAM ("XRAM", 0xe5007000, 0xe5008fff, true);
|
||||
R const R::YRAM ("YRAM", 0xe5017000, 0xe5018fff, true);
|
||||
// clang-format on
|
||||
|
||||
std::array<MemoryRegion const *, 10> const MemoryRegion::m_all = {
|
||||
&R::ROM,
|
||||
|
|
Loading…
Reference in New Issue