| 122 | |
| 123 | template <MemoryAccessType Value> |
| 124 | bool MemoryInterface::IdempotentWrite(u32 address, Value value) |
| 125 | { |
| 126 | bool valid; |
| 127 | Value existing_value = Read<Value>(address, &valid); |
| 128 | if (!valid || existing_value == value) |
| 129 | return valid; |
| 130 | |
| 131 | return Write<Value>(address, value); |
| 132 | } |
| 133 | |
| 134 | #define EXPLICITLY_INSTANTIATE_TEMPLATES(type) \ |
| 135 | template type MemoryInterface::Read<type>(u32 addres, bool* valid); \ |