aboutsummaryrefslogtreecommitdiffhomepage
path: root/amd64/sysv.c
Commit message (Collapse)AuthorAgeFilesLines
* abi: fix aggregate passed by regs 2nd reg offset lemon2025-12-061-3/+7
| | | | | | | | | It was broken for example `struct { i32 a; f64 b; }` (would try to load/store b from byte offset 4, not 8). Introduce r2off, realize in x86-64 it's always 8; even `struct {i32 a; f32 b;}` gets passed in one (integer) register. But not so in (future) ABIs like RISC-V, I believe there `{i32, f32}` would get passed in 1 integer and 1 float register (r2off = 4).
* add command-line predefined macros (-D, -U) lemon2025-12-061-1/+0
|
* amd64: va_arg for small aggregates lemon2025-11-231-2/+8
|
* implement float varargs, and some other fixes lemon2025-11-231-46/+45
|
* sysv: nested scalar classification of struct shouldn't return KPTR, used to ↵ lemon2025-11-221-1/+1
| | | | indicate aggregate in the stack
* change op names to match 285063eba44 lemon2025-11-211-11/+11
|
* rename IR classes to reflect bitsize lemon2025-11-211-7/+7
|
* sysv: document vaargs stack layout stuff lemon2025-11-141-3/+29
|
* preeliminary va_list support lemon2025-11-141-3/+117
|
* amd64: fix aggregate abi stuff;; ir: fold, peephole optimizing constructors lemon2025-11-051-17/+27
|
* regalloc: basic spilling support lemon2025-09-131-0/+1
|
* amd64: bugfix lemon2025-09-081-1/+0
|
* backend: fix regalloc to work with more complex dataflow lemon2023-06-241-2/+2
| | | | | | | | basically an allocation map at the beginning (in) and end (out) of each block is kept and after the first allocation pass another pass is ran to resolve allocation conflicts between each edge, plus another pass to finish lowering phi functions. also introduced `regset` and plenty of other miscellaneous fixes
* amd64: fix aggregate return in regs lemon2023-06-201-3/+3
|
* forgot some statics lemon2023-06-181-1/+1
|
* misc lemon2023-06-171-0/+2
|
* lower allocas in isel() instead of emit() and misc fixes lemon2023-06-131-4/+4
|
* register renaming and such lemon2023-06-121-1/+1
|
* remove RPARAM, add Oparam, lower args/rets to abi regs in abi0 lemon2023-06-111-5/+8
|
* isel skeleton lemon2023-06-101-0/+1
|
* codegen skeleton lemon2023-06-061-0/+1
|
* encode calls a different way in the IR lemon2023-06-051-1/+1
|
* fix classify ptrs lemon2023-06-051-2/+2
|
* goof lemon2023-06-041-1/+5
|
* abi lowering pass lemon2023-06-041-18/+56
|
* basic ABI lowering of aggregates lemon2023-06-011-0/+103
|
* regalloc skeleton lemon2023-05-311-0/+3