| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | c: handle more static eval edgecases for int -> ptr | 2025-12-13 | 1 | -0/+9 | ||
| | | | | | | sqlite3 was falling back to `((void*)&((char*)0)[X])` for INT_TO_PTR, which this handles now. | |||||
| * | Add -O optimization flag | 2025-12-13 | 1 | -0/+1 | ||
| | | ||||||
| * | fix position independent loads of function symbols. | 2025-12-13 | 3 | -10/+30 | ||
| | | | | | | | | | For `extern int x[1];`, can use PCREL32 for &x. But for `extern int x(int)`, must use GOTREL, when not being called directly (that's PLT). Therefore the type of an external symbol (actually just whether it denotes a function) matters when deciding what kind of relocation to emit, so keep that information. | |||||
| * | test/14 | 2025-12-13 | 1 | -0/+12 | ||
| | | ||||||
| * | c: accept C99 `[static N]` style array decls, changes to fn quals | 2025-12-11 | 1 | -0/+5 | ||
| | | | | | | | Function parameters qualifiers don't matter outside of function definition. `int (const int)` should be compatible with `int(int)` etc. So no need to store them in the typedata. | |||||
| * | _Alignof and stuff | 2025-12-11 | 1 | -0/+22 | ||
| | | ||||||
| * | update lua/.gitignore | 2025-12-10 | 1 | -0/+2 | ||
| | | ||||||
| * | c: fix compound assignment type conversions when types don't match | 2025-12-10 | 2 | -0/+0 | ||
| | | ||||||
| * | Add lua 5.4.0 test suite | 2025-12-07 | 120 | -1/+59828 | ||
| | | ||||||
| * | test/12-flt: add some weird float cmp edgecases | 2025-12-07 | 1 | -2/+9 | ||
| | | ||||||
| * | add command-line predefined macros (-D, -U) | 2025-12-06 | 2 | -3/+6 | ||
| | | ||||||
| * | test 12-flt | 2025-12-05 | 3 | -4/+36 | ||
| | | ||||||
| * | test/11-abi | 2025-12-02 | 1 | -0/+37 | ||
| | | ||||||
| * | ir: implement cvtu64f. and other bug fixes | 2025-11-23 | 1 | -2/+2 | ||
| | | | | | | 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 | 1 | -2/+2 | ||
| | | | | | this should probably be in a separate pass? | |||||
| * | c: __builtin_va_copy | 2025-11-23 | 1 | -0/+17 | ||
| | | ||||||
| * | implement float varargs, and some other fixes | 2025-11-23 | 1 | -0/+22 | ||
| | | ||||||
| * | tests: add Nora Sandler's 'Write a C Compiler' test suite | 2025-11-22 | 2 | -0/+4 | ||
| | | ||||||
| * | rename test/varargs | 2025-11-19 | 1 | -0/+0 | ||
| | | ||||||
| * | make clean test/build | 2025-11-16 | 1 | -1/+1 | ||
| | | ||||||
| * | basic automated testing | 2025-11-16 | 13 | -45/+162 | ||
| | | ||||||
| * | isel: don't incorrectly clamp constant lhs of shift operation | 2025-11-15 | 1 | -1/+1 | ||
| | | ||||||
| * | preeliminary va_list support | 2025-11-14 | 1 | -0/+17 | ||
| | | ||||||
| * | regalloc: misc | 2025-11-02 | 1 | -0/+11 | ||
| | | ||||||
| * | c: avoid generating relocations in .rodata (putting such objects in .data ↵ | 2025-10-25 | 1 | -0/+2 | ||
| | | | | | instead for now) | |||||
| * | amd64: float conversion insntrs | 2025-10-18 | 1 | -0/+25 | ||
| | | ||||||
| * | wide str and char literals | 2025-10-16 | 1 | -3/+6 | ||
| | | ||||||
| * | test more cpp behavior | 2025-10-15 | 1 | -0/+18 | ||
| | | ||||||
| * | c: concatenate adjacent string literal tokens | 2025-10-15 | 1 | -1/+4 | ||
| | | ||||||
| * | lex: allow ## in non func macros. and error reporting | 2025-10-13 | 1 | -1/+8 | ||
| | | ||||||
| * | implement most of preprocessor | 2025-10-13 | 3 | -3/+15 | ||
| | | | | | | | | | - concatenation (##) - builtin macros (__FILE__ etc) - fails in some edge cases, and code needs cleanup - add embedded system include files (stddef.h, stdarg.h for now) - can handle stdio.h now | |||||
| * | bugfixes | 2025-10-10 | 1 | -1/+1 | ||
| | | ||||||
| * | update todo.txt | 2025-10-09 | 1 | -2/+7 | ||
| | | ||||||
| * | compound literals | 2025-10-09 | 1 | -0/+5 | ||
| | | ||||||
| * | bugfix for initz | 2025-10-08 | 1 | -0/+1 | ||
| | | ||||||
| * | initial implementation of run-time array/aggregate initializers | 2025-10-08 | 1 | -4/+14 | ||
| | | ||||||
| * | implement switch statement | 2025-09-16 | 1 | -0/+45 | ||
| | | ||||||
| * | frontend: more bitfield work | 2025-09-15 | 1 | -3/+20 | ||
| | | ||||||
| * | test/sort.c | 2025-09-15 | 1 | -0/+31 | ||
| | | ||||||
| * | regalloc: hand-roll qsort (bikeshedding...) | 2025-09-15 | 1 | -1/+1 | ||
| | | ||||||
| * | fix signed bitfield errata | 2025-09-14 | 1 | -2/+2 | ||
| | | ||||||
| * | start implementing bitfields | 2025-09-14 | 1 | -0/+12 | ||
| | | ||||||
| * | codegen: float cmp, ior; frontend: fix cond expr bug | 2025-09-14 | 2 | -3/+23 | ||
| | | ||||||
| * | regalloc.c cleanup | 2025-09-14 | 3 | -7/+5 | ||
| | | ||||||
| * | regalloc: basic spilling support | 2025-09-13 | 1 | -0/+8 | ||
| | | ||||||
| * | c: function-local static vars | 2025-09-12 | 4 | -3/+14 | ||
| | | ||||||
| * | lex: stringify args in function macros | 2025-09-10 | 2 | -3/+8 | ||
| | | ||||||
| * | lex: implement basic function-like macro functionality | 2025-09-10 | 2 | -6/+9 | ||
| | | ||||||
| * | fixes, delnops | 2025-09-09 | 1 | -1/+1 | ||
| | | ||||||
| * | regalloc: start implementing linear scan | 2025-09-08 | 4 | -1/+71 | ||
| | | ||||||