mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-08-08 12:52:32 -07:00
Move solution and projects to src
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using Ryujinx.HLE.HOS.Tamper.Operations;
|
||||
|
||||
namespace Ryujinx.HLE.HOS.Tamper.CodeEmitters
|
||||
{
|
||||
/// <summary>
|
||||
/// Code type 4 allows setting a register to a constant value.
|
||||
/// </summary>
|
||||
class LoadRegisterWithConstant
|
||||
{
|
||||
const int RegisterIndex = 3;
|
||||
const int ValueImmediateIndex = 8;
|
||||
|
||||
const int ValueImmediateSize = 16;
|
||||
|
||||
public static void Emit(byte[] instruction, CompilationContext context)
|
||||
{
|
||||
// 400R0000 VVVVVVVV VVVVVVVV
|
||||
// R: Register to use.
|
||||
// V: Value to load.
|
||||
|
||||
Register destinationRegister = context.GetRegister(instruction[RegisterIndex]);
|
||||
ulong immediate = InstructionHelper.GetImmediate(instruction, ValueImmediateIndex, ValueImmediateSize);
|
||||
Value<ulong> sourceValue = new Value<ulong>(immediate);
|
||||
|
||||
context.CurrentOperations.Add(new OpMov<ulong>(destinationRegister, sourceValue));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user