aboutsummaryrefslogtreecommitdiffhomepage
path: root/amd64/sysv.c
Commit message (Collapse)AuthorAgeFilesLines
* rename arraylength macro -> countoflemon2025-12-111-1/+1
|
* abi: fix aggregate passed by regs 2nd reg offsetlemon2025-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 aggregateslemon2025-11-231-2/+8
|
* implement float varargs, and some other fixeslemon2025-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 285063eba44lemon2025-11-211-11/+11
|
* rename IR classes to reflect bitsizelemon2025-11-211-7/+7
|
* sysv: document vaargs stack layout stufflemon2025-11-141-3/+29
|
* preeliminary va_list supportlemon2025-11-141-3/+117
|
* amd64: fix aggregate abi stuff;; ir: fold, peephole optimizing constructorslemon2025-11-051-17/+27
|
* regalloc: basic spilling supportlemon2025-09-131-0/+1
|
* amd64: bugfixlemon2025-09-081-1/+0
|
* backend: fix regalloc to work with more complex dataflowlemon2023-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 regslemon2023-06-201-3/+3
|
* forgot some staticslemon2023-06-181-1/+1
|
* misclemon2023-06-171-0/+2
|
* lower allocas in isel() instead of emit() and misc fixeslemon2023-06-131-4/+4
|
* register renaming and suchlemon2023-06-121-1/+1
|
* remove RPARAM, add Oparam, lower args/rets to abi regs in abi0lemon2023-06-111-5/+8
|
* isel skeletonlemon2023-06-101-0/+1
|
* codegen skeletonlemon2023-06-061-0/+1
|
* encode calls a different way in the IRlemon2023-06-051-1/+1
|
* fix classify ptrslemon2023-06-051-2/+2
|
* gooflemon2023-06-041-1/+5
|
* abi lowering passlemon2023-06-041-18/+56
|
* basic ABI lowering of aggregateslemon2023-06-011-0/+103
|
* regalloc skeletonlemon2023-05-311-0/+3