aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Translation/ILOpCodeLoad.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2019-02-27 23:03:31 -0300
committerjduncanator <1518948+jduncanator@users.noreply.github.com>2019-02-28 13:03:31 +1100
commite21ebbf666f10d39d44a0856e5a44143d3d69d0d (patch)
tree40d25d600ed121eeb397ff24ac7d7d7112b0a079 /ChocolArm64/Translation/ILOpCodeLoad.cs
parent884b4e5fd3c2a54ebb796b7f995c0eda9c4d0038 (diff)
Misc. CPU optimizations (#575)
* Add optimizations related to caller/callee saved registers, thread synchronization and disable tier 0 * Refactoring * Add a config entry to enable or disable the reg load/store opt. * Remove unnecessary register state stores for calls when the callee is know * Rename IoType to VarType * Enable tier 0 while fixing some perf issues related to tier 0 * Small tweak -- Compile before adding to the cache, to avoid lags * Add required config entry
Diffstat (limited to 'ChocolArm64/Translation/ILOpCodeLoad.cs')
-rw-r--r--ChocolArm64/Translation/ILOpCodeLoad.cs20
1 files changed, 10 insertions, 10 deletions
diff --git a/ChocolArm64/Translation/ILOpCodeLoad.cs b/ChocolArm64/Translation/ILOpCodeLoad.cs
index c31e06bb..0d11eeaa 100644
--- a/ChocolArm64/Translation/ILOpCodeLoad.cs
+++ b/ChocolArm64/Translation/ILOpCodeLoad.cs
@@ -5,28 +5,28 @@ namespace ChocolArm64.Translation
{
struct ILOpCodeLoad : IILEmit
{
- public int Index { get; private set; }
+ public int Index { get; }
- public IoType IoType { get; private set; }
+ public VarType VarType { get; }
- public RegisterSize RegisterSize { get; private set; }
+ public RegisterSize RegisterSize { get; }
- public ILOpCodeLoad(int index, IoType ioType, RegisterSize registerSize = 0)
+ public ILOpCodeLoad(int index, VarType varType, RegisterSize registerSize = 0)
{
Index = index;
- IoType = ioType;
+ VarType = varType;
RegisterSize = registerSize;
}
public void Emit(ILMethodBuilder context)
{
- switch (IoType)
+ switch (VarType)
{
- case IoType.Arg: context.Generator.EmitLdarg(Index); break;
+ case VarType.Arg: context.Generator.EmitLdarg(Index); break;
- case IoType.Flag: EmitLdloc(context, Index, RegisterType.Flag); break;
- case IoType.Int: EmitLdloc(context, Index, RegisterType.Int); break;
- case IoType.Vector: EmitLdloc(context, Index, RegisterType.Vector); break;
+ case VarType.Flag: EmitLdloc(context, Index, RegisterType.Flag); break;
+ case VarType.Int: EmitLdloc(context, Index, RegisterType.Int); break;
+ case VarType.Vector: EmitLdloc(context, Index, RegisterType.Vector); break;
}
}