aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/t_x86-64_emit.c
Commit message (Collapse)AuthorAgeFilesLines
* backend: inlining improvements lemon2026-04-091-0/+2
|
* Implement basic aarch64 struct arg passing ABI lemon2026-04-081-46/+65
| | | | | | | | | | - Missing: vaargs, >2 member HFAs - Reworked the way stack allocation references are lowered. Now RSTACK persists throughout all passes until emit. This allows deferring stack frame layouting until the end in a less messy way than before, which was emiting frame-pointer relative addresses @ isel time and patching them up later in emit to account for actual stack frame layout.
* x86-64: redzone optimization for leaf functions lemon2026-03-271-7/+10
| | | | Don't use frame pointer or explicitly modify stack pointer for these
* IR: emit inline function standalone bodies lazily lemon2026-03-231-3/+3
| | | | | | | If a function is stashed for inlining and inlined in all of its callsites or unused, it never ends up in the object file. If any symbol reference to it is emitted, then it must be de-inlined (rematerialized), and this is done near the end before emitting the actual object file.
* style: change uvlong -> u64int, vlong -> s64int lemon2026-03-221-1/+1
| | | | | Is much nicer. I don't know whether I want to do it for the other int types too. char and uchar are fine as bytes. u/short -> u/s16int, maybe.
* regalloc & emit: explicit comparisons over memcmp of small structures lemon2026-03-191-2/+18
| | | | | The one in x86-64_emit was not portable due to relying on zero initialization of inactive union fields/padding.
* Refactor: use typedefs and CamelCase for aggregate types lemon2026-03-181-67/+67
| | | | Looks nicer
* REFACTOR: finish renaming lemon2026-03-171-3/+3
|
* REFACTOR: move sources to src/ lemon2026-03-171-0/+1422