diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2019-04-26 01:55:12 -0300 |
|---|---|---|
| committer | jduncanator <1518948+jduncanator@users.noreply.github.com> | 2019-04-26 14:55:12 +1000 |
| commit | 8a7d99cdeae2355511d4eb43aefb76d0d886bcf8 (patch) | |
| tree | 655d33f4db5dc3eb21c9c4ff5867b1179913585a /ChocolArm64/Translation/TranslatedSub.cs | |
| parent | 2b8eac1bcec6d4870776b4f302d9dd7794223642 (diff) | |
Refactoring and optimization on CPU translation (#661)
* Refactoring and optimization on CPU translation
* Remove now unused property
* Rename ilBlock -> block (local)
* Change equality comparison on RegisterMask for consistency
Co-Authored-By: gdkchan <gab.dark.100@gmail.com>
* Add back the aggressive inlining attribute to the Synchronize method
* Implement IEquatable on the Register struct
* Fix identation
Diffstat (limited to 'ChocolArm64/Translation/TranslatedSub.cs')
| -rw-r--r-- | ChocolArm64/Translation/TranslatedSub.cs | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/ChocolArm64/Translation/TranslatedSub.cs b/ChocolArm64/Translation/TranslatedSub.cs index 8b599b7a..704e3b47 100644 --- a/ChocolArm64/Translation/TranslatedSub.cs +++ b/ChocolArm64/Translation/TranslatedSub.cs @@ -26,25 +26,15 @@ namespace ChocolArm64.Translation public TranslationTier Tier { get; } - public long IntNiRegsMask { get; } - public long VecNiRegsMask { get; } - - private bool _isWorthOptimizing; + private bool _rejit; private int _callCount; - public TranslatedSub( - DynamicMethod method, - long intNiRegsMask, - long vecNiRegsMask, - TranslationTier tier, - bool isWorthOptimizing) + public TranslatedSub(DynamicMethod method, TranslationTier tier, bool rejit) { - Method = method ?? throw new ArgumentNullException(nameof(method));; - IntNiRegsMask = intNiRegsMask; - VecNiRegsMask = vecNiRegsMask; - _isWorthOptimizing = isWorthOptimizing; - Tier = tier; + Method = method ?? throw new ArgumentNullException(nameof(method));; + Tier = tier; + _rejit = rejit; } static TranslatedSub() @@ -82,9 +72,9 @@ namespace ChocolArm64.Translation return Delegate(threadState, memory); } - public bool IsWorthOptimizing() + public bool Rejit() { - if (!_isWorthOptimizing) + if (!_rejit) { return false; } @@ -94,9 +84,8 @@ namespace ChocolArm64.Translation return false; } - //Only return true once, so that it is - //added to the queue only once. - _isWorthOptimizing = false; + //Only return true once, so that it is added to the queue only once. + _rejit = false; return true; } |
