aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/c_eval.c
Commit message (Collapse)AuthorAgeFilesLines
* C99 complex types MVP lemon2026-04-131-0/+1
| | | | | | | | | 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
* style: change uvlong -> u64int, vlong -> s64int lemon2026-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.
* eval: fix errata in EGETF addr case lemon2026-03-221-1/+1
| | | | | | | The symref given by staticaddrof is in ex2, not sub. This worked by chance (with sub->ssym.off happening to be zero) on linux, but on OpenBSD it would give garbage. Which would result in messed up relocations later leading to miscompilations.
* IR: add 3rd operand to Instr lemon2026-03-221-1/+2
| | | | | The motivation is for aarch64 msub/madd instrs, for isel to produce. But it should be useful for other things too.
* c: better preserve source location in some cases lemon2026-03-201-0/+4
|
* c: fix edge cases with zero sized bitfields and static initializers lemon2026-03-181-2/+6
|
* Refactor: use typedefs and CamelCase for aggregate types lemon2026-03-181-21/+21
| | | | Looks nicer
* REFACTOR: finish renaming lemon2026-03-171-1/+1
|
* REFACTOR: move sources to src/ lemon2026-03-171-0/+437