From f22fd1714ba40f1444a79a629dbe53e0744c85cd Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 7 Jul 2026 19:53:13 +0200 Subject: [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 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4177 Reviewed-by: MaranBr Reviewed-by: CamilleLaVey --- docs/dynarmic/Design.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') 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 -- cgit v1.2.3