mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-25 04:46:27 -05:00
shader: Stub ISBERD
This commit is contained in:
parent
2516829e4c
commit
f712084147
3 changed files with 56 additions and 4 deletions
|
@ -120,6 +120,7 @@ add_library(shader_recompiler STATIC
|
||||||
frontend/maxwell/translate/impl/integer_shift_right.cpp
|
frontend/maxwell/translate/impl/integer_shift_right.cpp
|
||||||
frontend/maxwell/translate/impl/integer_short_multiply_add.cpp
|
frontend/maxwell/translate/impl/integer_short_multiply_add.cpp
|
||||||
frontend/maxwell/translate/impl/integer_to_integer_conversion.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.cpp
|
||||||
frontend/maxwell/translate/impl/load_constant.h
|
frontend/maxwell/translate/impl/load_constant.h
|
||||||
frontend/maxwell/translate/impl/load_effective_address.cpp
|
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);
|
ThrowNotImplemented(Opcode::IMUL32I);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TranslatorVisitor::ISBERD(u64) {
|
|
||||||
ThrowNotImplemented(Opcode::ISBERD);
|
|
||||||
}
|
|
||||||
|
|
||||||
void TranslatorVisitor::JCAL(u64) {
|
void TranslatorVisitor::JCAL(u64) {
|
||||||
ThrowNotImplemented(Opcode::JCAL);
|
ThrowNotImplemented(Opcode::JCAL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue