shader/memory: Implement unaligned LDL.S16 and LDS.S16
This commit is contained in:
parent
531f25a037
commit
9a2cdf8520
|
@ -169,12 +169,10 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
|
||||||
};
|
};
|
||||||
|
|
||||||
switch (instr.ldst_sl.type.Value()) {
|
switch (instr.ldst_sl.type.Value()) {
|
||||||
case StoreType::Signed16: {
|
case StoreType::Signed16:
|
||||||
Node address = GetAddress(0);
|
SetRegister(bb, instr.gpr0,
|
||||||
|
Sign16Extend(ExtractUnaligned(GetMemory(0), GetAddress(0), 0b10, 16)));
|
||||||
SetRegister(bb, instr.gpr0, Sign16Extend(GetMemory(0)));
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case StoreType::Bits32:
|
case StoreType::Bits32:
|
||||||
case StoreType::Bits64:
|
case StoreType::Bits64:
|
||||||
case StoreType::Bits128: {
|
case StoreType::Bits128: {
|
||||||
|
|
Reference in New Issue