diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-09-19 17:07:56 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-09-19 17:07:56 -0300 |
| commit | 6d65e536642a7cff7afa34be10fdc8ca66a6e79c (patch) | |
| tree | 6e7344ea3f5ea7bb84c3b11c241ff7f579457c3e /ChocolArm64/Decoder | |
| parent | 99b2692425ff4045f103cde0745624b9b41d6fe6 (diff) | |
Remove cold methods from the CPU cache (#224)
* Remove unused tracing functionality from the CPU
* GetNsoExecutable -> GetExecutable
* Unsigned comparison
* Re-add cpu tracing
* Config change
* Remove cold methods from the translation cache on the cpu
* Replace lock with try lock, pass new ATranslatorCache instead of ATranslator
* Rebase fixups
Diffstat (limited to 'ChocolArm64/Decoder')
| -rw-r--r-- | ChocolArm64/Decoder/ADecoder.cs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/ChocolArm64/Decoder/ADecoder.cs b/ChocolArm64/Decoder/ADecoder.cs index b154a54c..64beebd2 100644 --- a/ChocolArm64/Decoder/ADecoder.cs +++ b/ChocolArm64/Decoder/ADecoder.cs @@ -19,11 +19,7 @@ namespace ChocolArm64.Decoder OpActivators = new ConcurrentDictionary<Type, OpActivator>(); } - public static ABlock DecodeBasicBlock( - AThreadState State, - ATranslator Translator, - AMemory Memory, - long Start) + public static ABlock DecodeBasicBlock(AThreadState State, AMemory Memory, long Start) { ABlock Block = new ABlock(Start); @@ -33,10 +29,10 @@ namespace ChocolArm64.Decoder } public static (ABlock[] Graph, ABlock Root) DecodeSubroutine( - AThreadState State, - ATranslator Translator, - AMemory Memory, - long Start) + ATranslatorCache Cache, + AThreadState State, + AMemory Memory, + long Start) { Dictionary<long, ABlock> Visited = new Dictionary<long, ABlock>(); Dictionary<long, ABlock> VisitedEnd = new Dictionary<long, ABlock>(); @@ -79,7 +75,7 @@ namespace ChocolArm64.Decoder { if (Op.Emitter == AInstEmit.Bl) { - HasCachedSub = Translator.HasCachedSub(Op.Imm); + HasCachedSub = Cache.HasSubroutine(Op.Imm); } else { |
