[APU] XMA register table cleanup, documentation.
- [APU] Clean up XMA register table. - [APU] Document observed register ranges in the XMA register table.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
******************************************************************************
|
||||
* Xenia : Xbox 360 Emulator Research Project *
|
||||
******************************************************************************
|
||||
* Copyright 2014 Ben Vanik. All rights reserved. *
|
||||
* Copyright 2021 Ben Vanik. All rights reserved. *
|
||||
* Released under the BSD license - see LICENSE in the root for more details. *
|
||||
******************************************************************************
|
||||
*/
|
||||
@@ -16,18 +16,13 @@
|
||||
namespace xe {
|
||||
namespace apu {
|
||||
|
||||
enum XmaRegister {
|
||||
#define XE_XMA_REGISTER(index, type, name) XE_XMA_REG_##name = index,
|
||||
struct XmaRegister {
|
||||
#define XE_XMA_REGISTER(index, name) static const uint32_t name = index;
|
||||
#include "xenia/apu/xma_register_table.inc"
|
||||
#undef XE_XMA_REGISTER
|
||||
};
|
||||
|
||||
struct XmaRegisterInfo {
|
||||
enum class Type {
|
||||
kDword,
|
||||
kFloat,
|
||||
};
|
||||
Type type;
|
||||
const char* name;
|
||||
};
|
||||
|
||||
@@ -38,14 +33,10 @@ class XmaRegisterFile {
|
||||
static const XmaRegisterInfo* GetRegisterInfo(uint32_t index);
|
||||
|
||||
static const size_t kRegisterCount = (0xFFFF + 1) / 4;
|
||||
union RegisterValue {
|
||||
uint32_t u32;
|
||||
float f32;
|
||||
};
|
||||
RegisterValue values[kRegisterCount];
|
||||
uint32_t values[kRegisterCount];
|
||||
|
||||
RegisterValue& operator[](int reg) { return values[reg]; }
|
||||
RegisterValue& operator[](XmaRegister reg) { return values[reg]; }
|
||||
uint32_t operator[](uint32_t reg) const { return values[reg]; }
|
||||
uint32_t& operator[](uint32_t reg) { return values[reg]; }
|
||||
};
|
||||
|
||||
} // namespace apu
|
||||
|
||||
Reference in New Issue
Block a user