aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* isel: fix flipped sub not being inplacelemon2025-12-051-0/+1
|
* amd64: handle unoredered float cmpslemon2025-12-051-2/+30
|
* ir: float fold div/0lemon2025-12-051-4/+3
|
* io: print nans as NaNlemon2025-12-051-0/+5
|
* eval: fix float cmpslemon2025-12-051-0/+2
|
* update todo.txtlemon2025-12-041-1/+2
|
* driver: more commandline option placeholders, .a file supportlemon2025-12-041-3/+9
|
* regalloc: kill dead defs of physical regslemon2025-12-041-8/+16
|
* isel: fix immediate of flipped sublemon2025-12-041-0/+1
|
* cpp: implement preprocessor expressions short circuiting behaviourlemon2025-12-031-17/+23
| | | | This only affects whether an error is given for something like `0 && 0/0` (it shouldn't)
* c: allow redeclaration with K&R and non K&R prototypeslemon2025-12-031-2/+10
|
* preprocessor: add #ifndef...#endif include guard optimizationlemon2025-12-024-16/+38
|
* test/11-abilemon2025-12-022-6/+46
|
* c: make tentative definitions worklemon2025-12-025-18/+57
|
* c: narrowing ints of different signedness...lemon2025-12-011-1/+1
|
* c: edgecase for redeclaration of implicit sized arraylemon2025-12-011-1/+1
|
* driver: add -run option like tcclemon2025-11-302-24/+80
| | | | convenient for quick testing
* c: fix some decl bugs and diagnosticslemon2025-11-301-18/+34
|
* amd64/isel: fix addressing index shift being possibly too large to encode (duh)lemon2025-11-292-1/+2
|
* lex: remove some hacks and optimize preprocessorlemon2025-11-282-40/+35
|
* isel: fix branch arglemon2025-11-271-0/+2
|
* abi/isel: aggregate args in stack wiplemon2025-11-272-15/+42
|
* regalloc: skip dead phislemon2025-11-261-1/+4
|
* c/type: make implicit const T* -> T* conversion warning, not errorlemon2025-11-263-4/+11
|
* io: diagnostics print source code underline correctly with hard tabslemon2025-11-261-8/+26
|
* c: more static initializer fixeslemon2025-11-262-7/+9
|
* c: fix elided-braces initializers for nested unionslemon2025-11-261-5/+16
| | | | | | | | For example in ```c struct {int a; union { int b,c; }; int d; } X = {1,2,3}; ``` Fields `a`,`b`,`d` must get initialized to 1,2,3. Not `c`
* use bstdout for -Elemon2025-11-262-7/+7
|
* amd64/emit: I64 consts and fp push/poplemon2025-11-241-7/+22
|
* fix regression w/ store instr + memory immediatelemon2025-11-241-11/+13
|
* pp: fix token pasting (hopefully)lemon2025-11-241-27/+15
|
* bootstrapping 🎉lemon2025-11-243-2/+24
|
* ir: simplify some occurrences of single-argument phislemon2025-11-242-8/+17
|
* c: fix condexprvaluelemon2025-11-241-54/+42
| | | | | The original implementation was broken when presented with nested short-circuiting logical operators.
* c: remove unused functionlemon2025-11-241-8/+0
|
* c: create dummy unreachable block after traplemon2025-11-242-5/+2
| | | | | | Reverts 9abe27f6712. This simplies expr codegen, otherwise would manually have to check `fn->curblk != NULL` repeatedly. Later passes will easily delete those unreachable blocks
* isel: loadstoreaddr don't fuseaddr as muchlemon2025-11-241-3/+5
|
* ir.h: tweak mkintrin() definition to work with tinycclemon2025-11-241-1/+1
|
* ir: implement cvtu64f. and other bug fixeslemon2025-11-235-12/+50
| | | | | compiler is bootstrapping?! however, stage1 and stage2+ executables aren't bit-identical.. small differences in the codegen.. need to look into that
* implement cvtfXu64 by lowering it in builderlemon2025-11-232-11/+48
| | | | this should probably be in a separate pass?
* c: check actual reachability for non-void func may not return valuelemon2025-11-233-2/+28
|
* c: implement compound initializer in static contextlemon2025-11-232-3/+18
|
* update todo.txtlemon2025-11-231-1/+0
|
* lex: TEMP hack: #define __x86_64__ or some system headers break subtlylemon2025-11-231-0/+1
|
* amd64/emit: fix (partially) float comparisonsdlemon2025-11-231-6/+10
|
* amd64: va_arg for small aggregateslemon2025-11-231-2/+8
|
* amd64/emit: this rbpoff approach is kinda broken..lemon2025-11-231-1/+1
|
* c: fix runtime implicit-length array initializerlemon2025-11-231-2/+3
|
* c: __builtin_va_copylemon2025-11-233-9/+39
|
* implement float varargs, and some other fixeslemon2025-11-237-53/+93
|