aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/TranslatedSub.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-12-10 22:58:52 -0200
committerGitHub <noreply@github.com>2018-12-10 22:58:52 -0200
commit36e8e074c90f11480389560e3f019a161f82efbe (patch)
treea187c1702feba371ff9be1b71491efc3dfcf9ed8 /ChocolArm64/TranslatedSub.cs
parentf1529b1bc2bafbdadcf4d4643aa5716414097239 (diff)
Misc. CPU improvements (#519)
* Fix and simplify TranslatorCache * Fix some assignment alignments, remove some unused usings * Changes to ILEmitter, separate it from ILEmitterCtx * Rename ILEmitter to ILMethodBuilder * Rename LdrLit and *_Fix opcodes * Revert TranslatorCache impl to the more performant one, fix a few issues with it * Allow EmitOpCode to be called even after everything has been emitted * Make Emit and AdvanceOpCode private, simplify it a bit now that it starts emiting from the entry point * Remove unneeded temp use * Add missing exit call on TestExclusive * Use better hash * Implement the == and != operators
Diffstat (limited to 'ChocolArm64/TranslatedSub.cs')
-rw-r--r--ChocolArm64/TranslatedSub.cs20
1 files changed, 5 insertions, 15 deletions
diff --git a/ChocolArm64/TranslatedSub.cs b/ChocolArm64/TranslatedSub.cs
index 8b3ec3f0..653abcca 100644
--- a/ChocolArm64/TranslatedSub.cs
+++ b/ChocolArm64/TranslatedSub.cs
@@ -24,7 +24,7 @@ namespace ChocolArm64
public DynamicMethod Method { get; private set; }
- public ReadOnlyCollection<Register> Params { get; private set; }
+ public ReadOnlyCollection<Register> SubArgs { get; private set; }
private HashSet<long> _callers;
@@ -34,20 +34,10 @@ namespace ChocolArm64
private bool _needsReJit;
- public TranslatedSub(DynamicMethod method, List<Register> Params)
+ public TranslatedSub(DynamicMethod method, List<Register> subArgs)
{
- if (method == null)
- {
- throw new ArgumentNullException(nameof(method));
- }
-
- if (Params == null)
- {
- throw new ArgumentNullException(nameof(Params));
- }
-
- Method = method;
- this.Params = Params.AsReadOnly();
+ Method = method ?? throw new ArgumentNullException(nameof(method));;
+ SubArgs = subArgs?.AsReadOnly() ?? throw new ArgumentNullException(nameof(subArgs));
_callers = new HashSet<long>();
@@ -89,7 +79,7 @@ namespace ChocolArm64
generator.EmitLdargSeq(FixedArgTypes.Length);
- foreach (Register reg in Params)
+ foreach (Register reg in SubArgs)
{
generator.EmitLdarg(StateArgIdx);