summary refs log tree commit diff
path: root/sysv.c
AgeCommit message (Collapse)Author
2016-04-20match jumps/ops with il textQuentin Carbonneaux
2016-04-13turn alignment asserts into err()Quentin Carbonneaux
2016-04-12oops, wrong test in abi classify()Quentin Carbonneaux
2016-04-08simplify a buggy testQuentin Carbonneaux
I found it by compiling -O2 and seeing the ABI code fail. Further investigation revealed GCC trimmed away the last iteration of the loop because I was accessing the third element of an array of size two. This is undefined behavior, so GCC "proved" that the last iteration was never run.
2016-04-04fat il!Quentin Carbonneaux
2016-04-04cosmetics in sysv abiQuentin Carbonneaux
A struct of size 0 is now marked as passed in memory. All the ABI code assumes structs passed in registers have size at least 8. This could have an impact on the alignment in the stack, but eh, I guess they are rare.
2016-04-04remove old selpar() codeQuentin Carbonneaux
2016-04-03fix alignment code in selpar()Quentin Carbonneaux
2016-04-03rewrite of selpar() for factoringQuentin Carbonneaux
2016-04-01don't try to keep use counts in abi()Quentin Carbonneaux
Abi lowering does not need use counts, but they are needed for instruction selection. I changed main to call filluse() between these two passes.
2016-03-31move abi code in a new fileQuentin Carbonneaux