|
|
|
@ -102,9 +102,12 @@ void TranslatorVisitor::ISBERD(u64 insn) { |
|
|
|
|
|
|
|
IR::F32 float_index{}; |
|
|
|
switch (isberd.mode.Value()) { |
|
|
|
case Mode::Patch: float_index = ir.GetPatch(index.Patch()); break; |
|
|
|
case Mode::Prim: float_index = ir.GetAttribute(index.Attribute()); break; |
|
|
|
case Mode::Attr: float_index = ir.GetAttributeIndexed(index); break; |
|
|
|
case Mode::Patch: float_index = ir.GetPatch(index.Patch()); |
|
|
|
break; |
|
|
|
case Mode::Prim: float_index = ir.GetAttribute(index.Attribute()); |
|
|
|
break; |
|
|
|
case Mode::Attr: float_index = ir.GetAttributeIndexed(index); |
|
|
|
break; |
|
|
|
default: UNREACHABLE(); |
|
|
|
} |
|
|
|
X(isberd.dest_reg.Value(), ir.BitCast<IR::U32>(float_index)); |
|
|
|
|