aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* c: handle more static eval edgecases for int -> ptr lemon2025-12-133-5/+29
| | | | | sqlite3 was falling back to `((void*)&((char*)0)[X])` for INT_TO_PTR, which this handles now.
* c: case/default labels only create new blocks when necessary lemon2025-12-131-7/+11
|
* regalloc: fixbug with phi move of stack <- stack lemon2025-12-132-6/+5
|
* Add -O optimization flag lemon2025-12-134-2/+15
|
* fix position independent loads of function symbols. lemon2025-12-139-26/+48
| | | | | | | | 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 lemon2025-12-131-0/+12
|
* x86-64/emit errata lemon2025-12-121-7/+4
|
* x86_64: fix erroneous encoding of index reg in no-pie situations lemon2025-12-121-11/+1
|
* s/amd64/x86_64/ lemon2025-12-1210-20/+20
|
* emit: turn ADD -imm into SUB imm lemon2025-12-121-1/+5
|
* isel: fix bug where sub turned into add, but inplace didn't reflect lemon2025-12-121-2/+2
|
* c: switch stmt diagnostics lemon2025-12-121-8/+49
| | | | For duplicate cases, case value overflow
* amd64/emit: change instr desc table a little lemon2025-12-121-157/+158
|
* lex: use pmap for macro lookup lemon2025-12-124-134/+100
| | | | To reduce hashmap code repetition. Also add pmap_del for this purpose
* rename arraylength macro -> countof lemon2025-12-1115-106/+106
|
* default to C11 lemon2025-12-111-1/+1
|
* c: accept C99 `[static N]` style array decls, changes to fn quals lemon2025-12-115-61/+56
| | | | | | 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 lemon2025-12-115-13/+53
|
* c: use a look-up table for isdecltok() lemon2025-12-111-14/+18
|
* -trigraphs option lemon2025-12-112-3/+5
|
* c: optimize environment decl lookup lemon2025-12-111-6/+26
| | | | | Use a hashmap for the toplevel, optimizing for the common use case where the file-scope has many more declarations than local scopes do
* c: disallow mismatched nested extern decl, & more diagnostics lemon2025-12-111-17/+24
|
* c: support for noreturn, and decl parsing cleanup lemon2025-12-115-110/+119
|
* driver: add -Werror lemon2025-12-113-1/+6
|
* fatal() make noreturn lemon2025-12-111-2/+8
|
* make fatal() _Noreturn lemon2025-12-112-2/+2
|
* lex/expr(): cleanup lemon2025-12-111-29/+29
|
* c: expr2reloc() change sig to return addend lemon2025-12-111-15/+12
|
* ir: bump MAXINSTR lemon2025-12-101-1/+1
|
* embedfilesdir: don't need that much padding lemon2025-12-101-1/+1
|
* lexer: properly add padding for cpppredefs lemon2025-12-101-2/+2
|
* c: fix static relocation for &sym[offset] lemon2025-12-101-7/+6
|
* parallel move; implement reg<->stack swp lemon2025-12-102-5/+21
|
* update lua/.gitignore lemon2025-12-101-0/+2
|
* regalloc: optimize a little edge case better lemon2025-12-101-4/+6
| | | | | | | | | | | | With two-address instructions one needs to make sure the dst doesn't get allocated to the same reg as the right-hand operand: %r = mul %x, %y ; %y cannot be %r Except, if the operands are the same %r = mul %x, %x ; if %x is dead after this instr, it's fine to allocate %r to the same reg
* c: fix compound assignment type conversions when types don't match lemon2025-12-103-2/+3
|
* misc fixes lemon2025-12-103-5/+4
|
* elf: initialize str hashtable to a nicer size lemon2025-12-091-0/+1
|
* mem: fix pmap_init and change hashmap load factors to 75% lemon2025-12-092-5/+4
|
* lex: make some hashtables resizable lemon2025-12-092-36/+73
| | | | Was hiting the fixed limits trying to preprocess sqlite3amalgamation
* rega: change assert for spilled callee. it's ok if nspill==1 lemon2025-12-091-1/+1
|
* c: fix some static initialziers lemon2025-12-081-1/+3
|
* eval: &*x address constants lemon2025-12-081-0/+4
|
* c: fix more declaration parsing bugs lemon2025-12-081-7/+17
|
* driver: update help lemon2025-12-081-14/+32
|
* driver: use fexecve for -run lemon2025-12-081-17/+18
|
* Add lua 5.4.0 test suite lemon2025-12-07121-2/+59828
|
* test/12-flt: add some weird float cmp edgecases lemon2025-12-071-2/+9
|
* io: just use sprintf for printing doubles lemon2025-12-071-28/+6
|
* amd64: fix wrong condition code being used for float gth lemon2025-12-071-1/+1
| | | | ughh