summaryrefslogtreecommitdiff
path: root/src/video_core/macro_interpreter.cpp
diff options
context:
space:
mode:
authorGravatar Lioncash2019-04-05 22:51:22 -0400
committerGravatar Lioncash2019-04-05 22:55:13 -0400
commit1efdb4897ed80a12b3d6fd2ec0575c86d60d95de (patch)
tree814e11eff276ea38f2173868d0b0e1a8f6452d28 /src/video_core/macro_interpreter.cpp
parentMerge pull request #2282 from bunnei/gpu-asynch-v2 (diff)
downloadyuzu-1efdb4897ed80a12b3d6fd2ec0575c86d60d95de.tar.gz
yuzu-1efdb4897ed80a12b3d6fd2ec0575c86d60d95de.tar.xz
yuzu-1efdb4897ed80a12b3d6fd2ec0575c86d60d95de.zip
video_core/macro_interpreter: Simplify GetRegister()
Given we already ensure nothing can set the zeroth register in SetRegister(), we don't need to check if the index is zero and special case it. We can just access the register normally, since it's already going to be zero. We can also replace the assertion with .at() to perform the equivalent behavior inline as part of the API.
Diffstat (limited to 'src/video_core/macro_interpreter.cpp')
-rw-r--r--src/video_core/macro_interpreter.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/video_core/macro_interpreter.cpp b/src/video_core/macro_interpreter.cpp
index 64f75db43..4c4e8d603 100644
--- a/src/video_core/macro_interpreter.cpp
+++ b/src/video_core/macro_interpreter.cpp
@@ -228,22 +228,17 @@ u32 MacroInterpreter::FetchParameter() {
228} 228}
229 229
230u32 MacroInterpreter::GetRegister(u32 register_id) const { 230u32 MacroInterpreter::GetRegister(u32 register_id) const {
231 // Register 0 is supposed to always return 0. 231 return registers.at(register_id);
232 if (register_id == 0)
233 return 0;
234
235 ASSERT(register_id < registers.size());
236 return registers[register_id];
237} 232}
238 233
239void MacroInterpreter::SetRegister(u32 register_id, u32 value) { 234void MacroInterpreter::SetRegister(u32 register_id, u32 value) {
240 // Register 0 is supposed to always return 0. NOP is implemented as a store to the zero 235 // Register 0 is hardwired as the zero register.
241 // register. 236 // Ensure no writes to it actually occur.
242 if (register_id == 0) 237 if (register_id == 0) {
243 return; 238 return;
239 }
244 240
245 ASSERT(register_id < registers.size()); 241 registers.at(register_id) = value;
246 registers[register_id] = value;
247} 242}
248 243
249void MacroInterpreter::SetMethodAddress(u32 address) { 244void MacroInterpreter::SetMethodAddress(u32 address) {