aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/t_aarch64_emit.c
Commit message (Collapse)AuthorAgeFilesLines
* get rid of other warningslemon2026-04-121-1/+1
|
* aarch64: align leaf func stacks toolemon2026-04-121-2/+2
|
* aarch64: fix stack frame layout, againlemon2026-04-121-35/+32
| | | | | Turns out hardware enforces SP 16-bit alignment in every SP relative load/store, but QEMU doesn't emulate this.
* aarch64 handle more cases of stack relative addressinglemon2026-04-091-0/+4
|
* Implement basic aarch64 struct arg passing ABIlemon2026-04-081-40/+80
| | | | | | | | | | - 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.
* aarch64: GOT relocationslemon2026-03-261-17/+45
|
* aarch64 struct arg passing ABI wiplemon2026-03-251-2/+4
|
* IR: emit inline function standalone bodies lazilylemon2026-03-231-5/+5
| | | | | | | 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 -> s64intlemon2026-03-221-2/+2
| | | | | 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.
* aarch64: rem/urem, bswap*, arg bugfixlemon2026-03-221-0/+22
|
* Refactor: use typedefs and CamelCase for aggregate typeslemon2026-03-181-70/+71
| | | | Looks nicer
* REFACTOR: finish renaminglemon2026-03-171-3/+3
|
* REFACTOR: move sources to src/lemon2026-03-171-0/+1023