mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2025-08-30 23:36:28 -05:00
Improve access to system registers by using properties, also use exclusive region granularity on exclusive load/stores, and ensure that acquires without releases won't hold the address forever, remove unused ALU rev method
This commit is contained in:
@@ -467,11 +467,41 @@ namespace ChocolArm64.Translation
|
||||
throw new ArgumentOutOfRangeException(nameof(Size));
|
||||
}
|
||||
|
||||
public void EmitCall(Type MthdType, string MthdName)
|
||||
public void EmitCallPropGet(Type ObjType, string PropName)
|
||||
{
|
||||
if (MthdType == null)
|
||||
if (ObjType == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(MthdType));
|
||||
throw new ArgumentNullException(nameof(ObjType));
|
||||
}
|
||||
|
||||
if (PropName == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(PropName));
|
||||
}
|
||||
|
||||
EmitCall(ObjType.GetMethod($"get_{PropName}"));
|
||||
}
|
||||
|
||||
public void EmitCallPropSet(Type ObjType, string PropName)
|
||||
{
|
||||
if (ObjType == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(ObjType));
|
||||
}
|
||||
|
||||
if (PropName == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(PropName));
|
||||
}
|
||||
|
||||
EmitCall(ObjType.GetMethod($"set_{PropName}"));
|
||||
}
|
||||
|
||||
public void EmitCall(Type ObjType, string MthdName)
|
||||
{
|
||||
if (ObjType == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(ObjType));
|
||||
}
|
||||
|
||||
if (MthdName == null)
|
||||
@@ -479,7 +509,7 @@ namespace ChocolArm64.Translation
|
||||
throw new ArgumentNullException(nameof(MthdName));
|
||||
}
|
||||
|
||||
EmitCall(MthdType.GetMethod(MthdName));
|
||||
EmitCall(ObjType.GetMethod(MthdName));
|
||||
}
|
||||
|
||||
public void EmitCall(MethodInfo MthdInfo)
|
||||
|
Reference in New Issue
Block a user