From a40eebd4e30af7bc6a2856630430a69bd9f07760 Mon Sep 17 00:00:00 2001 From: SDK Chan Date: Thu, 31 Jul 2025 18:03:49 +0000 Subject: [PATCH] [shader_recompiler/Maxwell] Change ISBERD variable data type --- .../impl/internal_stage_buffer_entry_read.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp index d71c65069b..9288290725 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp @@ -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(isberd.imm)); result = ir.GetAttributeIndexed(address); } else { - IR::U32 offset = ir.Imm32(isberd.imm); + IR::U32 offset = ir.Imm32(static_cast(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(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(isberd.imm))); } switch (static_cast(isberd.mode.Value())) {