Archived
1
0
Fork 0
forked from Mirror/Ryujinx

Update StoreConstantToMemory to match StoreConstantToAddress on value read (#6642)

This commit is contained in:
WilliamWsyHK 2024-04-11 06:03:37 +08:00 committed by GitHub
parent 9480e5c5ce
commit 22e3ff06b5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -15,7 +15,8 @@ namespace Ryujinx.HLE.HOS.Tamper.CodeEmitters
private const int OffsetRegisterIndex = 6;
private const int ValueImmediateIndex = 8;
private const int ValueImmediateSize = 16;
private const int ValueImmediateSize8 = 8;
private const int ValueImmediateSize16 = 16;
public static void Emit(byte[] instruction, CompilationContext context)
{
@ -31,7 +32,8 @@ namespace Ryujinx.HLE.HOS.Tamper.CodeEmitters
Register sourceRegister = context.GetRegister(instruction[AddressRegisterIndex]);
byte incrementAddressRegister = instruction[IncrementAddressRegisterIndex];
byte useOffsetRegister = instruction[UseOffsetRegisterIndex];
ulong immediate = InstructionHelper.GetImmediate(instruction, ValueImmediateIndex, ValueImmediateSize);
int valueImmediateSize = operationWidth <= 4 ? ValueImmediateSize8 : ValueImmediateSize16;
ulong immediate = InstructionHelper.GetImmediate(instruction, ValueImmediateIndex, valueImmediateSize);
Value<ulong> storeValue = new(immediate);
Pointer destinationMemory;