From f8be5445b1fdd9ee894ee4efdd1fc8e69d29389b Mon Sep 17 00:00:00 2001 From: xddxd Date: Sat, 28 Mar 2020 00:42:24 +0200 Subject: [PATCH] Most important fix of the year --- rpcs3/Emu/RSX/Common/ProgramStateCache.cpp | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp b/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp index 235f57bd1c3e..7bc2aa8b521d 100644 --- a/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp +++ b/rpcs3/Emu/RSX/Common/ProgramStateCache.cpp @@ -47,20 +47,20 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert std::function walk_function = [&](u32 start, bool fast_exit) { - u32 current_instrution = start; + u32 current_instruction = start; std::set conditional_targets; while (true) { - verify(HERE), current_instrution < 512; + verify(HERE), current_instruction < 512; - if (result.instruction_mask[current_instrution]) + if (result.instruction_mask[current_instruction]) { if (!fast_exit) { // This can be harmless if a dangling RET was encountered before rsx_log.error("vp_analyser: Possible infinite loop detected"); - current_instrution++; + current_instruction++; continue; } else @@ -70,14 +70,14 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert } } - const qword* instruction = reinterpret_cast(&data[current_instrution * 4]); + const qword* instruction = reinterpret_cast(&data[current_instruction * 4]); d1.HEX = instruction->word[1]; d3.HEX = instruction->word[3]; // Touch current instruction - result.instruction_mask[current_instrution] = true; - instruction_range.first = std::min(current_instrution, instruction_range.first); - instruction_range.second = std::max(current_instrution, instruction_range.second); + result.instruction_mask[current_instruction] = true; + instruction_range.first = std::min(current_instruction, instruction_range.first); + instruction_range.second = std::max(current_instruction, instruction_range.second); // Basic vec op analysis, must be done before flow analysis switch (d1.vec_opcode) @@ -111,7 +111,7 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert case RSX_SCA_OPCODE_CLB: { // Need to patch the jump address to be consistent wherever the program is located - instructions_to_patch[current_instrution] = true; + instructions_to_patch[current_instruction] = true; has_branch_instruction = true; d2.HEX = instruction->word[2]; @@ -119,14 +119,14 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert if (function_call) { - call_stack.push(current_instrution + 1); - current_instrution = jump_address; + call_stack.push(current_instruction + 1); + current_instruction = jump_address; continue; } else if (static_jump) { // NOTE: This will skip potential jump target blocks between current->target - current_instrution = jump_address; + current_instruction = jump_address; continue; } else @@ -146,7 +146,7 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert } else { - current_instrution = call_stack.top(); + current_instruction = call_stack.top(); call_stack.pop(); continue; } @@ -155,13 +155,13 @@ vertex_program_utils::vertex_program_metadata vertex_program_utils::analyse_vert } } - if ((d3.end && (fast_exit || current_instrution >= instruction_range.second)) || - (current_instrution + 1) == 512) + if ((d3.end && (fast_exit || current_instruction >= instruction_range.second)) || + (current_instruction + 1) == 512) { break; } - current_instrution++; + current_instruction++; } for (const u32 target : conditional_targets)