diff options
| author | lizzie <lizzie@eden-emu.dev> | 2026-07-07 19:53:13 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-07-07 19:53:13 +0200 |
| commit | f22fd1714ba40f1444a79a629dbe53e0744c85cd (patch) | |
| tree | 17611ff47caa0246b38e1ef03d28a0d1b53199d4 /docs | |
| parent | 6119e8fad2677e731e6105af6063cabe7be069f8 (diff) | |
[dynarmic] use LinkBlockFast for branches which are guarnateed to be unconditional (or conditionally unconditional) (#4177)
CBZ is basically
```c
if (thing) {
jump(A);
} else {
jump(B);
}
```
those jumps are locally unconditional so we can add the LinkBlockFast
without much repercussions for a small win in JIT opts
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4177
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/dynarmic/Design.md | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/docs/dynarmic/Design.md b/docs/dynarmic/Design.md index 020cfd65bd..b46e7e5348 100644 --- a/docs/dynarmic/Design.md +++ b/docs/dynarmic/Design.md @@ -311,8 +311,9 @@ dispatcher, which will return control to the host. SetTerm(IR::Term::LinkBlockFast{next}) ``` -This terminal instruction jumps to the basic block described by `next` unconditionally. -This promises guarantees that must be held at runtime - i.e that the program wont hang, +This terminal instruction jumps to the basic block described by `next` unconditionally. This promises guarantees that must be held at runtime - i.e that the program wont hang, + +This is a valid expression if contained within another block (say a `Terminal::If`) and the semantics allow it to be so. ### Terminal: PopRSBHint |
