summary refs log tree commit diff
path: root/lisc/isel.c
AgeCommit message (Collapse)Author
2016-03-22dumb switch mistake in isel (abi fuzzer)Quentin Carbonneaux
2016-03-22fix incorrect size increment in abi (abi fuzzer)Quentin Carbonneaux
Sizes are expressed in multiples of 4 bytes, so we need to divide the size of aggregate types by four when computing stack offsets.
2016-03-18calls now use rax all the time...Quentin Carbonneaux
2016-03-18handle padding correctly in typesQuentin Carbonneaux
2016-03-18set eax before call (for variadics...)Quentin Carbonneaux
2016-03-18tentative support of calls with struct returnQuentin Carbonneaux
2016-03-18factor return registers computationQuentin Carbonneaux
2016-03-18small fixes in selcall()Quentin Carbonneaux
* Floating point return values are now handled correctly (I thought they were...). * Use counts of the "stack pointer" used for memory arguments are tracked correctly. * Use counts of struct argument pointers are tracked correctly.
2016-03-17on the way to clean use countsQuentin Carbonneaux
2016-03-17support return of structsQuentin Carbonneaux
2016-03-16add unsigned division and remainderQuentin Carbonneaux
2016-03-16add shift instructionsQuentin Carbonneaux
2016-03-16document oddity in seljmp()Quentin Carbonneaux
2016-03-09use opdesc[] in isel.cQuentin Carbonneaux
2016-03-08add more info in opdesc[]Quentin Carbonneaux
2016-03-07add new cast instructionQuentin Carbonneaux
2016-03-07refine immediate reload testQuentin Carbonneaux
We only need to load all the bits of a large constant when it is used in long context.
2016-03-07fix two bad bugs in abi classificationQuentin Carbonneaux
The conditions to put a struct in memory or not were wrong. And I misused the cls field of the AClass struct.
2016-03-03add some (easy) instructionsQuentin Carbonneaux
2016-02-27use a new bits type for bitmapsQuentin Carbonneaux
2016-02-26add cheapo static assertQuentin Carbonneaux
2016-02-24tentative big args supportQuentin Carbonneaux
2016-02-24prepare for big structs passing codeQuentin Carbonneaux
2016-02-24support memory class arguemntsQuentin Carbonneaux
2016-02-24simply use memset to 0 stuffQuentin Carbonneaux
2016-02-24oops, phi nodes rewrite for fast locals was trashedQuentin Carbonneaux
The phi fixing mechanism can use emit(), so we need to set curi before performing the rewrite. Otherwise, we are writing at random places in the instruction buffer (not so bad because it is bounds checked), but then we loose the instructions written (bad)!
2016-02-23cosmetics in isel.cQuentin Carbonneaux
2016-02-23fix uninitialized variable in selpar()Quentin Carbonneaux
2016-02-23patch return, might not workQuentin Carbonneaux
2016-02-22fix buggy name changes in iselQuentin Carbonneaux
2016-02-21complete fp support for small structsQuentin Carbonneaux
There is an oddity/bug though, we use OStorel to store possibly fp registers. Gas does not complain, but this is wrong. The fix is probably to have a simple OStore, like in the OLoad case.
2016-02-21genius or idiot?Quentin Carbonneaux
2016-02-18stop using OXxx1 and use new OLoadQuentin Carbonneaux
2016-02-18use classes in arg classificationQuentin Carbonneaux
2016-02-18complete argcls (pretty ugly...)Quentin Carbonneaux
2016-02-18start completing the fp abiQuentin Carbonneaux
2016-02-15better variable name in selcall()Quentin Carbonneaux
2016-02-15more fp calling conventionsQuentin Carbonneaux
2016-02-15patch isel for store{s,d}Quentin Carbonneaux
2016-02-15partial fix argcls() in iselQuentin Carbonneaux
2016-02-15collect and emit fp constantsQuentin Carbonneaux
2016-02-12fix harmless typo in iselQuentin Carbonneaux
2016-02-11fix the class for generated jumpsQuentin Carbonneaux
2016-02-11fp cmp fixes (highly untested)Quentin Carbonneaux
2016-02-09add one case in address matchingQuentin Carbonneaux
2016-01-29add cheapo static assert in iselQuentin Carbonneaux
2016-01-22fix spacingQuentin Carbonneaux
2016-01-04force warning with XMM15 in rsave[]Quentin Carbonneaux
2015-12-18delete callclb altogetherQuentin Carbonneaux
2015-12-18make call{def,use} fp awareQuentin Carbonneaux