aboutsummaryrefslogtreecommitdiffhomepage
path: root/amd64/isel.c
Commit message (Collapse)AuthorAgeFilesLines
* isel: fix immediate of flipped sublemon2025-12-041-0/+1
|
* test/11-abilemon2025-12-021-6/+9
|
* amd64/isel: fix addressing index shift being possibly too large to encode (duh)lemon2025-11-291-1/+1
|
* isel: fix branch arglemon2025-11-271-0/+2
|
* abi/isel: aggregate args in stack wiplemon2025-11-271-6/+11
|
* fix regression w/ store instr + memory immediatelemon2025-11-241-11/+13
|
* isel: loadstoreaddr don't fuseaddr as muchlemon2025-11-241-3/+5
|
* implement float varargs, and some other fixeslemon2025-11-231-0/+6
|
* amd64/isel: indirect call arg must be memaddrlemon2025-11-221-2/+7
|
* make sure indirect function call pointer does not end up in clobber reglemon2025-11-221-0/+5
|
* ir: barebones IR passes checked contractslemon2025-11-211-0/+2
|
* remove umullemon2025-11-211-3/+2
|
* change op names to match 285063eba44lemon2025-11-211-13/+13
|
* rename IR classes to reflect bitsizelemon2025-11-211-11/+11
|
* isel: lower allocas a different way, such that stk address gets materialized ↵lemon2025-11-201-23/+58
| | | | when necesary
* ir: for easier debugging, keep ctype in dats, print as literal when possiblelemon2025-11-201-3/+7
|
* debug output to stdoutlemon2025-11-191-1/+1
|
* isel: don't incorrectly clamp constant lhs of shift operationlemon2025-11-151-4/+4
|
* isel: fold arithlemon2025-11-141-1/+21
|
* preeliminary va_list supportlemon2025-11-141-5/+23
|
* amd64/isel: fold Oext with immediateslemon2025-11-121-0/+8
|
* implement argument passing in stacklemon2025-11-121-6/+18
|
* fixup! amd64: get rid of xinc/xdec. handle those at emit stagelemon2025-11-091-1/+1
|
* amd64/isel: make `sub imm` work for address fusinglemon2025-11-091-2/+8
|
* amd64: get rid of xinc/xdec. handle those at emit stagelemon2025-11-091-18/+1
|
* amd64: fix aggregate abi stuff;; ir: fold, peephole optimizing constructorslemon2025-11-051-2/+1
|
* isel: fix 3-address add when used for flags in branchlemon2025-11-021-0/+3
|
* isel fixeslemon2025-10-301-3/+11
|
* isel: fix address sel for absolute int addrlemon2025-10-261-0/+7
|
* amd64 missing stufflemon2025-10-231-2/+10
|
* isel: fix -fpic factoring out non-symbolic address operandslemon2025-10-231-1/+1
|
* amd64: load/store from abs address constants; movabslemon2025-10-231-10/+19
|
* amd64: float conversion insntrslemon2025-10-181-0/+13
|
* small thignslemon2025-10-181-1/+1
|
* bugfixeslemon2025-10-101-0/+1
|
* initial implementation of run-time array/aggregate initializerslemon2025-10-081-0/+4
|
* fix some more codegen bugs for symbol constantslemon2025-09-161-2/+5
|
* codegen: float cmp, ior; frontend: fix cond expr buglemon2025-09-141-2/+5
|
* preliminary pie and piclemon2025-09-141-8/+25
|
* amd64: fix isel for numeric conversion opslemon2023-08-071-4/+4
|
* amd64 codegen fixeslemon2023-07-071-1/+1
|
* misc bugfixslemon2023-06-301-4/+2
|
* add initializers (only static for initialier list rn)lemon2023-06-291-7/+33
| | | | and other fixes
* fix some warningslemon2023-06-251-9/+1
|
* fix regalloc thinking some ins are dead by adding ins.keeplemon2023-06-241-1/+5
|
* amd64/emit: more float fixeslemon2023-06-241-21/+24
| | | | | optimize loading 0.0 in phis as well as regular copies and also don't use inc or addr for float addition
* backend: fix regalloc to work with more complex dataflowlemon2023-06-241-1/+1
| | | | | | | | basically an allocation map at the beginning (in) and end (out) of each block is kept and after the first allocation pass another pass is ran to resolve allocation conflicts between each edge, plus another pass to finish lowering phi functions. also introduced `regset` and plenty of other miscellaneous fixes
* change RMORE -> RADDR; use RXXX (RNONE) for special args,also undeflemon2023-06-221-12/+12
|
* explicitly store predecessors in each blocklemon2023-06-211-4/+4
|
* amd64: conform to ABI for varargs func callslemon2023-06-201-1/+0
|