Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-03-25 | great renaming campain! | Quentin Carbonneaux | |
2016-03-22 | store register usage of ret instructions (abi fuzz) | Quentin Carbonneaux | |
So far I was ignoring register uses of return instructions and it was working because at most one register could be returned. Now that more complex returns are supported it is necessary to keep track of the registers used by returns. The abi fuzzer triggered an assertion failure in the register allocator with the following IL: R1 =l load [%t16] R3 =l load [8 + %t16] ret The regalloc would use R1 for %t16, and then a (nice) assertion realized the inconsistent state because R1 could only be def'd by an assignment to %t16. | |||
2016-03-22 | typo in isel (abi fuzzer) | Quentin Carbonneaux | |
2016-03-22 | dumb switch mistake in isel (abi fuzzer) | Quentin Carbonneaux | |
2016-03-22 | fix 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-18 | calls now use rax all the time... | Quentin Carbonneaux | |
2016-03-18 | handle padding correctly in types | Quentin Carbonneaux | |
2016-03-18 | set eax before call (for variadics...) | Quentin Carbonneaux | |
2016-03-18 | tentative support of calls with struct return | Quentin Carbonneaux | |
2016-03-18 | factor return registers computation | Quentin Carbonneaux | |
2016-03-18 | small 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-17 | on the way to clean use counts | Quentin Carbonneaux | |
2016-03-17 | support return of structs | Quentin Carbonneaux | |
2016-03-16 | add unsigned division and remainder | Quentin Carbonneaux | |
2016-03-16 | add shift instructions | Quentin Carbonneaux | |
2016-03-16 | document oddity in seljmp() | Quentin Carbonneaux | |
2016-03-09 | use opdesc[] in isel.c | Quentin Carbonneaux | |
2016-03-08 | add more info in opdesc[] | Quentin Carbonneaux | |
2016-03-07 | add new cast instruction | Quentin Carbonneaux | |
2016-03-07 | refine immediate reload test | Quentin Carbonneaux | |
We only need to load all the bits of a large constant when it is used in long context. | |||
2016-03-07 | fix two bad bugs in abi classification | Quentin 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-03 | add some (easy) instructions | Quentin Carbonneaux | |
2016-02-27 | use a new bits type for bitmaps | Quentin Carbonneaux | |
2016-02-26 | add cheapo static assert | Quentin Carbonneaux | |
2016-02-24 | tentative big args support | Quentin Carbonneaux | |
2016-02-24 | prepare for big structs passing code | Quentin Carbonneaux | |
2016-02-24 | support memory class arguemnts | Quentin Carbonneaux | |
2016-02-24 | simply use memset to 0 stuff | Quentin Carbonneaux | |
2016-02-24 | oops, phi nodes rewrite for fast locals was trashed | Quentin 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-23 | cosmetics in isel.c | Quentin Carbonneaux | |
2016-02-23 | fix uninitialized variable in selpar() | Quentin Carbonneaux | |
2016-02-23 | patch return, might not work | Quentin Carbonneaux | |
2016-02-22 | fix buggy name changes in isel | Quentin Carbonneaux | |
2016-02-21 | complete fp support for small structs | Quentin 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-21 | genius or idiot? | Quentin Carbonneaux | |
2016-02-18 | stop using OXxx1 and use new OLoad | Quentin Carbonneaux | |
2016-02-18 | use classes in arg classification | Quentin Carbonneaux | |
2016-02-18 | complete argcls (pretty ugly...) | Quentin Carbonneaux | |
2016-02-18 | start completing the fp abi | Quentin Carbonneaux | |
2016-02-15 | better variable name in selcall() | Quentin Carbonneaux | |
2016-02-15 | more fp calling conventions | Quentin Carbonneaux | |
2016-02-15 | patch isel for store{s,d} | Quentin Carbonneaux | |
2016-02-15 | partial fix argcls() in isel | Quentin Carbonneaux | |
2016-02-15 | collect and emit fp constants | Quentin Carbonneaux | |
2016-02-12 | fix harmless typo in isel | Quentin Carbonneaux | |
2016-02-11 | fix the class for generated jumps | Quentin Carbonneaux | |
2016-02-11 | fp cmp fixes (highly untested) | Quentin Carbonneaux | |
2016-02-09 | add one case in address matching | Quentin Carbonneaux | |
2016-01-29 | add cheapo static assert in isel | Quentin Carbonneaux | |
2016-01-22 | fix spacing | Quentin Carbonneaux | |