Merge branch 'master' into classification

This commit is contained in:
Dr-Carlos 2022-04-15 06:58:17 +09:30
commit d943ba12c3
4 changed files with 30 additions and 49 deletions

1
.git-blame-ignore-revs Normal file
View File

@ -0,0 +1 @@
cf2bc1870c7ce1bd4f924aa91786a714ce8658e3

View File

@ -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;

View File

@ -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)

View File

@ -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,