[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-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
@ -28,8 +31,8 @@ void TranslatorVisitor::ISBERD(u64 insn) {
|
||||||
u64 raw;
|
u64 raw;
|
||||||
BitField<0, 8, IR::Reg> dest_reg;
|
BitField<0, 8, IR::Reg> dest_reg;
|
||||||
BitField<8, 8, IR::Reg> src_reg;
|
BitField<8, 8, IR::Reg> src_reg;
|
||||||
BitField<8, 8, u32> src_reg_num;
|
BitField<8, 8, u64> src_reg_num;
|
||||||
BitField<24, 8, u32> imm;
|
BitField<24, 8, u64> imm;
|
||||||
BitField<31, 1, u64> skew;
|
BitField<31, 1, u64> skew;
|
||||||
BitField<32, 1, u64> o;
|
BitField<32, 1, u64> o;
|
||||||
BitField<33, 2, Mode> mode;
|
BitField<33, 2, Mode> mode;
|
||||||
|
@ -37,7 +40,9 @@ void TranslatorVisitor::ISBERD(u64 insn) {
|
||||||
} const isberd{insn};
|
} const isberd{insn};
|
||||||
|
|
||||||
if (isberd.skew != 0) {
|
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) {
|
if (isberd.o != 0) {
|
||||||
throw NotImplementedException("O");
|
throw NotImplementedException("O");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue