From 1f8194dfa3da5caa7f13adcbdcb9f7675261a7fc Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 16 Sep 2023 18:07:07 +0300 Subject: [PATCH] ShaderJIT: Make BREAK(C) emit a warning instead of crashing until implemented --- include/PICA/shader.hpp | 2 ++ src/core/PICA/dynapica/shader_rec_emitter_x64.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/include/PICA/shader.hpp b/include/PICA/shader.hpp index 63b59914c..5b05e0b79 100644 --- a/include/PICA/shader.hpp +++ b/include/PICA/shader.hpp @@ -36,8 +36,10 @@ namespace ShaderOpcodes { DSTI = 0x19, SGEI = 0x1A, SLTI = 0x1B, + BREAK = 0x20, NOP = 0x21, END = 0x22, + BREAKC = 0x23, CALL = 0x24, CALLC = 0x25, CALLU = 0x26, diff --git a/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp b/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp index d95f7bf51..046c78133 100644 --- a/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp +++ b/src/core/PICA/dynapica/shader_rec_emitter_x64.cpp @@ -172,6 +172,9 @@ void ShaderEmitter::compileInstruction(const PICAShader& shaderUnit) { emitPrintLog(shaderUnit); break; + case ShaderOpcodes::BREAK: + case ShaderOpcodes::BREAKC: Helpers::warn("[Shader JIT] Unimplemented BREAK(C) instruction!"); break; + // We consider both MAD and MADI to be the same instruction and decode which one we actually have in recMAD case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: case 0x3A: case 0x3B: case 0x3C: case 0x3D: case 0x3E: case 0x3F: