Source
- URL: https://x.com/NOTimothyLottes/status/2076888631508107561
- Author: NOTimothyLottes (@NOTimothyLottes)
- Posted: 2026-07-14 04:36:51
Thread
1/ @NOTimothyLottes
Another round of getting optimized error checking. Disassembly [after syscall] shows that it works.
(1.) Volatile store LINE
(2.) Volatile store “error code”
(3.) TEST if error
(4.) Conditional forward branch on error [static prediction untaken]
AS_MINIMAL_AS_ONE_CAN_GET
2/ @NOTimothyLottes
A macro cheat sheet to try to explain how it works …
3/ @NOTimothyLottes
I have a collection of force inline wrappers that test returns from syscalls/functions for error and return the return. These all leverage builtin_expect so the compiler knows to make them fall through in the common case.
4/ @NOTimothyLottes
Those force inlines call Err() on terminal error. The Err() function ensures the {LINE, error} stores are visible, then triggers the console drawing code to kill the app with printed error. Then it sleeps until the termination.
5/ @NOTimothyLottes
Compiler eventually screws up, but at least it gets the fast path correct, and the slow error path gets an extra call. Effectively it conditionally forward branches to a distant call to Err() instead of just branching to the Err().
6/ @NOTimothyLottes
So I can liter error checks around stuff with little actual cost,
(1.) Two stores
(2.) A CMP or TEST
(3.) An ignored on no-error branch on the first execution! [this code almost never runs 2 times].