From 524e4ae65c4d9cac908c282964ea8cea62ad53ef Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 5 Oct 2023 11:26:52 -0400 Subject: [PATCH] Tidy up just slightly more. --- InstructionSets/x86/DataPointerResolver.hpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/InstructionSets/x86/DataPointerResolver.hpp b/InstructionSets/x86/DataPointerResolver.hpp index 306c87e4c..a532fda16 100644 --- a/InstructionSets/x86/DataPointerResolver.hpp +++ b/InstructionSets/x86/DataPointerResolver.hpp @@ -126,8 +126,11 @@ template constexpr Register register_for_source(Source source) /// * a register bank; and /// * a memory pool. /// -/// The register bank should implement `template DataT read()` and `template void write(DataT)`. -/// Those functions will be called only with registers and data types that are appropriate to the @c model. +/// The register bank should implement: +/// * `template DataT read()` and +/// * `template void write(DataT)`. +/// +/// Which will be called only with registers and data types that are appropriate to the @c model. /// /// The memory pool should implement `template DataT read(Source segment, uint32_t address)` and /// `template void write(Source segment, uint32_t address, DataT value)`. @@ -192,14 +195,14 @@ template void DataPointerResolver:: access(registers, memory, instruction, pointer, value); } -#define rw(v, r, is_write) \ - case Source::r: \ - using VType = typename std::remove_reference::type; \ - if constexpr (is_write) { \ +#define rw(v, r, is_write) \ + case Source::r: \ + using VType = typename std::remove_reference::type; \ + if constexpr (is_write) { \ registers.template write(Source::r)>(v); \ - } else { \ + } else { \ v = registers.template read(Source::r)>(); \ - } \ + } \ break; #define ALLREGS(v, i) rw(v, eAX, i); rw(v, eCX, i); \