[shader_recompiler/Maxwell] Change ISBERD variable data type
All checks were successful
eden-license / license-header (pull_request) Successful in 20s

This commit is contained in:
SDK Chan 2025-07-31 18:03:49 +00:00
parent 6fd10fd85e
commit a40eebd4e3

View file

@ -31,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;
@ -48,10 +48,10 @@ void TranslatorVisitor::ISBERD(u64 insn) {
IR::U32 address{};
IR::F32 result{};
if (isberd.src_reg_num == 0xFF) {
address = ir.Imm32(isberd.imm);
address = ir.Imm32(static_cast<u32>(isberd.imm));
result = ir.GetAttributeIndexed(address);
} else {
IR::U32 offset = ir.Imm32(isberd.imm);
IR::U32 offset = ir.Imm32(static_cast<u32>(isberd.imm));
address = ir.IAdd(X(isberd.src_reg), offset);
result = ir.GetAttributeIndexed(address);
}
@ -61,9 +61,9 @@ void TranslatorVisitor::ISBERD(u64 insn) {
IR::F32 result{};
IR::U32 index{};
if (isberd.src_reg_num == 0xFF) {
index = ir.Imm32(isberd.imm);
index = ir.Imm32(static_cast<u32>(isberd.imm));
} else {
index = ir.IAdd(X(isberd.src_reg), ir.Imm32(isberd.imm));
index = ir.IAdd(X(isberd.src_reg), ir.Imm32(static_cast<u32>(isberd.imm)));
}
switch (static_cast<u64>(isberd.mode.Value())) {