shader: Stub ISBERD
This commit is contained in:
		| @@ -120,6 +120,7 @@ add_library(shader_recompiler STATIC | ||||
|     frontend/maxwell/translate/impl/integer_shift_right.cpp | ||||
|     frontend/maxwell/translate/impl/integer_short_multiply_add.cpp | ||||
|     frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp | ||||
|     frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp | ||||
|     frontend/maxwell/translate/impl/load_constant.cpp | ||||
|     frontend/maxwell/translate/impl/load_constant.h | ||||
|     frontend/maxwell/translate/impl/load_effective_address.cpp | ||||
|   | ||||
| @@ -0,0 +1,55 @@ | ||||
| // Copyright 2021 yuzu Emulator Project | ||||
| // Licensed under GPLv2 or any later version | ||||
| // Refer to the license.txt file included. | ||||
|  | ||||
| #include "common/bit_field.h" | ||||
| #include "common/common_types.h" | ||||
| #include "shader_recompiler/frontend/maxwell/translate/impl/impl.h" | ||||
|  | ||||
| #pragma optimize("", off) | ||||
|  | ||||
| namespace Shader::Maxwell { | ||||
| namespace { | ||||
| enum class Mode : u64 { | ||||
|     Default, | ||||
|     Patch, | ||||
|     Prim, | ||||
|     Attr, | ||||
| }; | ||||
|  | ||||
| enum class Shift : u64 { | ||||
|     Default, | ||||
|     U16, | ||||
|     B32, | ||||
| }; | ||||
|  | ||||
| } // Anonymous namespace | ||||
|  | ||||
| void TranslatorVisitor::ISBERD(u64 insn) { | ||||
|     union { | ||||
|         u64 raw; | ||||
|         BitField<0, 8, IR::Reg> dest_reg; | ||||
|         BitField<8, 8, IR::Reg> src_reg; | ||||
|         BitField<31, 1, u64> skew; | ||||
|         BitField<32, 1, u64> o; | ||||
|         BitField<33, 2, Mode> mode; | ||||
|         BitField<47, 2, Shift> shift; | ||||
|     } const isberd{insn}; | ||||
|  | ||||
|     if (isberd.skew != 0) { | ||||
|         throw NotImplementedException("SKEW"); | ||||
|     } | ||||
|     if (isberd.o != 0) { | ||||
|         throw NotImplementedException("O"); | ||||
|     } | ||||
|     if (isberd.mode != Mode::Default) { | ||||
|         throw NotImplementedException("Mode {}", isberd.mode.Value()); | ||||
|     } | ||||
|     if (isberd.shift != Shift::Default) { | ||||
|         throw NotImplementedException("Shift {}", isberd.shift.Value()); | ||||
|     } | ||||
|     // LOG_WARNING(..., "ISBERD is stubbed"); | ||||
|     X(isberd.dest_reg, X(isberd.src_reg)); | ||||
| } | ||||
|  | ||||
| } // namespace Shader::Maxwell | ||||
| @@ -141,10 +141,6 @@ void TranslatorVisitor::IMUL32I(u64) { | ||||
|     ThrowNotImplemented(Opcode::IMUL32I); | ||||
| } | ||||
|  | ||||
| void TranslatorVisitor::ISBERD(u64) { | ||||
|     ThrowNotImplemented(Opcode::ISBERD); | ||||
| } | ||||
|  | ||||
| void TranslatorVisitor::JCAL(u64) { | ||||
|     ThrowNotImplemented(Opcode::JCAL); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ReinUsesLisp
					ReinUsesLisp