~ecs/qbe2c

fix compilation

Signed-off-by: Sebastian <sebastian@sebsite.pw>
s/section/__section__/

Signed-off-by: Sebastian <sebastian@sebsite.pw>
fix keywords

there should probably be logic to handle all identifiers that start with
__ or with _ followed by a capital letter, rather than special-casing a
bunch of stuff, but for now some c23 keywords were missing and when i
first added keywords i added "nullexpr" instead of "nullptr" lol

Signed-off-by: Sebastian <sebastian@sebsite.pw>
update for memio
fix compilation and update for hlt
Add a missing space to the header
Use __asm__ when available

To avoid exposing symbol mangling
Add C23 keywords

Signed-off-by: Sebastian <sebastian@sebsite.pw>
Use binary search for keyword detection

Signed-off-by: Sebastian <sebastian@sebsite.pw>
Fix phi

Whoops, thanks seb
Fix shifts

And with that, all but one of the Hare stdlib tests pass. The last
failing one is:

math::fround: Assertion failed: /home/ecs/src/hare/hare/math/fenv+x86_64.ha:114:1

and it's due to clang constant-folding the calculations, with the wrong
rounding mode. I don't feel like fixing that, and it's not like it'll
ever affect anyone, so whatever.
Initialize temporaries

Piece of shit clang optimizer thinks it's smarter than me, fucking
christ
Fix 0-length alloc*
Drop some useless instructions

Not sure how these got in here
Make temporaries __qbe2c_union rather than u64

Fixes a bunch of issues with floats
Next