[shader_recompiler/Maxwell] Implement ISBERD skew operation #149
1 changed files with 8 additions and 3 deletions
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
@ -28,8 +31,8 @@ void TranslatorVisitor::ISBERD(u64 insn) {
|
|||
u64 raw;
|
||||
BitField<0, 8, IR::Reg> dest_reg;
|
||||
BitField<8, 8, IR::Reg> src_reg;
|
||||
BitField<8, 8, u32> src_reg_num;
|
||||
BitField<24, 8, u32> imm;
|
||||
BitField<8, 8, u64> src_reg_num;
|
||||
BitField<24, 8, u64> imm;
|
||||
BitField<31, 1, u64> skew;
|
||||
BitField<32, 1, u64> o;
|
||||
BitField<33, 2, Mode> mode;
|
||||
|
@ -37,7 +40,9 @@ void TranslatorVisitor::ISBERD(u64 insn) {
|
|||
} const isberd{insn};
|
||||
|
||||
if (isberd.skew != 0) {
|
||||
throw NotImplementedException("SKEW");
|
||||
IR::U32 current_lane_id{ir.LaneId()};
|
||||
IR::U32 result{ir.IAdd(X(isberd.src_reg), current_lane_id)};
|
||||
X(isberd.dest_reg, result);
|
||||
}
|
||||
if (isberd.o != 0) {
|
||||
throw NotImplementedException("O");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue