| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | isel: fix flipped sub not being inplace | 2025-12-05 | 1 | -0/+1 | ||
| | | ||||||
| * | amd64: handle unoredered float cmps | 2025-12-05 | 1 | -2/+30 | ||
| | | ||||||
| * | ir: float fold div/0 | 2025-12-05 | 1 | -4/+3 | ||
| | | ||||||
| * | io: print nans as NaN | 2025-12-05 | 1 | -0/+5 | ||
| | | ||||||
| * | eval: fix float cmps | 2025-12-05 | 1 | -0/+2 | ||
| | | ||||||
| * | update todo.txt | 2025-12-04 | 1 | -1/+2 | ||
| | | ||||||
| * | driver: more commandline option placeholders, .a file support | 2025-12-04 | 1 | -3/+9 | ||
| | | ||||||
| * | regalloc: kill dead defs of physical regs | 2025-12-04 | 1 | -8/+16 | ||
| | | ||||||
| * | isel: fix immediate of flipped sub | 2025-12-04 | 1 | -0/+1 | ||
| | | ||||||
| * | cpp: implement preprocessor expressions short circuiting behaviour | 2025-12-03 | 1 | -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 prototypes | 2025-12-03 | 1 | -2/+10 | ||
| | | ||||||
| * | preprocessor: add #ifndef...#endif include guard optimization | 2025-12-02 | 4 | -16/+38 | ||
| | | ||||||
| * | test/11-abi | 2025-12-02 | 2 | -6/+46 | ||
| | | ||||||
| * | c: make tentative definitions work | 2025-12-02 | 5 | -18/+57 | ||
| | | ||||||
| * | c: narrowing ints of different signedness... | 2025-12-01 | 1 | -1/+1 | ||
| | | ||||||
| * | c: edgecase for redeclaration of implicit sized array | 2025-12-01 | 1 | -1/+1 | ||
| | | ||||||
| * | driver: add -run option like tcc | 2025-11-30 | 2 | -24/+80 | ||
| | | | | | convenient for quick testing | |||||
| * | c: fix some decl bugs and diagnostics | 2025-11-30 | 1 | -18/+34 | ||
| | | ||||||
| * | amd64/isel: fix addressing index shift being possibly too large to encode (duh) | 2025-11-29 | 2 | -1/+2 | ||
| | | ||||||
| * | lex: remove some hacks and optimize preprocessor | 2025-11-28 | 2 | -40/+35 | ||
| | | ||||||
| * | isel: fix branch arg | 2025-11-27 | 1 | -0/+2 | ||
| | | ||||||
| * | abi/isel: aggregate args in stack wip | 2025-11-27 | 2 | -15/+42 | ||
| | | ||||||
| * | regalloc: skip dead phis | 2025-11-26 | 1 | -1/+4 | ||
| | | ||||||
| * | c/type: make implicit const T* -> T* conversion warning, not error | 2025-11-26 | 3 | -4/+11 | ||
| | | ||||||
| * | io: diagnostics print source code underline correctly with hard tabs | 2025-11-26 | 1 | -8/+26 | ||
| | | ||||||
| * | c: more static initializer fixes | 2025-11-26 | 2 | -7/+9 | ||
| | | ||||||
| * | c: fix elided-braces initializers for nested unions | 2025-11-26 | 1 | -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 -E | 2025-11-26 | 2 | -7/+7 | ||
| | | ||||||
| * | amd64/emit: I64 consts and fp push/pop | 2025-11-24 | 1 | -7/+22 | ||
| | | ||||||
| * | fix regression w/ store instr + memory immediate | 2025-11-24 | 1 | -11/+13 | ||
| | | ||||||
| * | pp: fix token pasting (hopefully) | 2025-11-24 | 1 | -27/+15 | ||
| | | ||||||
| * | bootstrapping 🎉 | 2025-11-24 | 3 | -2/+24 | ||
| | | ||||||
| * | ir: simplify some occurrences of single-argument phis | 2025-11-24 | 2 | -8/+17 | ||
| | | ||||||
| * | c: fix condexprvalue | 2025-11-24 | 1 | -54/+42 | ||
| | | | | | | The original implementation was broken when presented with nested short-circuiting logical operators. | |||||
| * | c: remove unused function | 2025-11-24 | 1 | -8/+0 | ||
| | | ||||||
| * | c: create dummy unreachable block after trap | 2025-11-24 | 2 | -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 much | 2025-11-24 | 1 | -3/+5 | ||
| | | ||||||
| * | ir.h: tweak mkintrin() definition to work with tinycc | 2025-11-24 | 1 | -1/+1 | ||
| | | ||||||
| * | ir: implement cvtu64f. and other bug fixes | 2025-11-23 | 5 | -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 builder | 2025-11-23 | 2 | -11/+48 | ||
| | | | | | this should probably be in a separate pass? | |||||
| * | c: check actual reachability for non-void func may not return value | 2025-11-23 | 3 | -2/+28 | ||
| | | ||||||
| * | c: implement compound initializer in static context | 2025-11-23 | 2 | -3/+18 | ||
| | | ||||||
| * | update todo.txt | 2025-11-23 | 1 | -1/+0 | ||
| | | ||||||
| * | lex: TEMP hack: #define __x86_64__ or some system headers break subtly | 2025-11-23 | 1 | -0/+1 | ||
| | | ||||||
| * | amd64/emit: fix (partially) float comparisonsd | 2025-11-23 | 1 | -6/+10 | ||
| | | ||||||
| * | amd64: va_arg for small aggregates | 2025-11-23 | 1 | -2/+8 | ||
| | | ||||||
| * | amd64/emit: this rbpoff approach is kinda broken.. | 2025-11-23 | 1 | -1/+1 | ||
| | | ||||||
| * | c: fix runtime implicit-length array initializer | 2025-11-23 | 1 | -2/+3 | ||
| | | ||||||
| * | c: __builtin_va_copy | 2025-11-23 | 3 | -9/+39 | ||
| | | ||||||
| * | implement float varargs, and some other fixes | 2025-11-23 | 7 | -53/+93 | ||
| | | ||||||