ryujinx-mirror/ARMeilleure/Translation
Ficture Seven 2421186d97
Generalize tail continues (#1298)
* Generalize tail continues

* Fix DecodeBasicBlock

`Next` and `Branch` would be null, which is not the state expected by
the branch instructions. They end up branching or falling into a block
which is never populated by the `Translator`. This causes an assert to
be fired when building the CFG.

* Clean up Decode overloads

* Do not synchronize when branching into exit block

If we're branching into an exit block, that exit block will tail
continue into another translation which already has a synchronization.

* Remove A32 predicate tail continue

If `block` is not an exit block then the `block.Next` must exist (as
per the last instruction of `block`).

* Throw if decoded 0 blocks

Address gdkchan's feedback

* Rebuild block list instead of setting to null

Address gdkchan's feedback
2020-06-18 13:37:21 +10:00
..
PTC Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
ArmEmitterContext.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
Compiler.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
CompilerContext.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
CompilerOptions.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
ControlFlowGraph.cs CodeGen Optimisations (LSRA and Translator) (#978) 2020-03-18 22:44:32 +11:00
DelegateHelper.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
DelegateInfo.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
Delegates.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
DirectCallStubs.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
Dominance.cs Replace LinkedList by IntrusiveList to avoid allocations on JIT (#931) 2020-02-17 22:30:54 +01:00
EmitterContext.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
GuestFunction.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
JitCache.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
JitCacheEntry.cs Add a new JIT compiler for CPU code (#693) 2019-08-08 21:56:22 +03:00
JitUnwindWindows.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
JumpTable.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
RegisterToLocal.cs Replace LinkedList by IntrusiveList to avoid allocations on JIT (#931) 2020-02-17 22:30:54 +01:00
RegisterUsage.cs CodeGen Optimisations (LSRA and Translator) (#978) 2020-03-18 22:44:32 +11:00
RejitRequest.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
SsaConstruction.cs Add most of the A32 instruction set to ARMeilleure (#897) 2020-02-24 08:20:40 +11:00
SsaDeconstruction.cs CodeGen Optimisations (LSRA and Translator) (#978) 2020-03-18 22:44:32 +11:00
TranslatedFunction.cs Add Profiled Persistent Translation Cache. (#769) 2020-06-16 20:28:02 +02:00
Translator.cs Generalize tail continues (#1298) 2020-06-18 13:37:21 +10:00