aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/t_x86-64_isel.c
Commit message (Collapse)AuthorAgeFilesLines
* x86-64/isel: always test for ZF after shiftlemon2026-04-091-3/+3
| | | | | The shift instructions do not update flags if the shift amount was zero, so can't realiably do this micro optimization
* x86-64/isel: fix stack addr regression from 8b79b61ae7lemon2026-04-091-2/+4
| | | | Checks for RADDR should also look for RSTACK when fusing addresses
* x86-64/isel: use integer stores for storing float constantslemon2026-04-091-2/+16
| | | | | Because the integer mov can have immediate operands, avoids a round trip through an XMM register.
* Implement basic aarch64 struct arg passing ABIlemon2026-04-081-16/+14
| | | | | | | | | | - 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.
* style: change uvlong -> u64int, vlong -> s64intlemon2026-03-221-6/+6
| | | | | 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.
* IR: add 3rd operand to Instrlemon2026-03-221-32/+33
| | | | | 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-45/+45
| | | | Looks nicer
* REFACTOR: finish renaminglemon2026-03-171-2/+2
|
* REFACTOR: move sources to src/lemon2026-03-171-0/+652