aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ir_abi0.c
Commit message (Collapse)AuthorAgeFilesLines
* C99 complex types MVPlemon2026-04-131-7/+10
| | | | | | | | | Missing: static eval of complex values, Silly inefficient implementation of equality comparisons between them The whole thing is pretty inefficient without proper aggregate mem2reg anyway
* Implement basic aarch64 struct arg passing ABIlemon2026-04-081-8/+11
| | | | | | | | | | - 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.
* abi: fix use bug preventing mem2reg optimization of struct returnlemon2026-03-251-0/+1
|
* aarch64 struct arg passing ABI wiplemon2026-03-251-2/+7
|
* IR: mark free'd instructions as suchlemon2026-03-231-1/+2
| | | | | That way they are not copied when inlining. Also rename ninstr -> ninstrtab. opnarg -> opnoper
* IR: add 3rd operand to Instrlemon2026-03-221-19/+19
| | | | | The motivation is for aarch64 msub/madd instrs, for isel to produce. But it should be useful for other things too.
* Refactor: use typedefs and CamelCase for aggregate typeslemon2026-03-181-67/+67
| | | | Looks nicer
* REFACTOR: move sources to src/lemon2026-03-171-0/+462