summary refs log tree commit diff
path: root/lisc
AgeCommit message (Collapse)Author
2016-03-22bake more fancy in abitest.shQuentin Carbonneaux
2016-03-22fix struct size computationQuentin Carbonneaux
2016-03-22fix incorrect size suffix in abi fuzzerQuentin Carbonneaux
2016-03-22check for overflow in ssa.c (abi fuzzer)Quentin Carbonneaux
2016-03-22store 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-22typo in lexing table (abi fuzzer)Quentin Carbonneaux
2016-03-22typo in isel (abi fuzzer)Quentin Carbonneaux
2016-03-22cleanup at the end of abitest.shQuentin Carbonneaux
2016-03-22dumb switch mistake in isel (abi fuzzer)Quentin Carbonneaux
2016-03-22fix bug in type definitions in abi.mlQuentin 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-21add the ability to run with a seedQuentin Carbonneaux
2016-03-21fix bug in IL checkingQuentin Carbonneaux
2016-03-21compile tests with debug optionsQuentin Carbonneaux
2016-03-21add abitest.sh toolQuentin Carbonneaux
2016-03-21wrap up abi.ml with a main functionQuentin Carbonneaux
2016-03-21tools/abi.ml seems to workQuentin Carbonneaux
2016-03-20start il generationQuentin Carbonneaux
2016-03-20finish OutC, use uniform distributionsQuentin Carbonneaux
2016-03-20ocaml and c chars are incompatibleQuentin Carbonneaux
2016-03-19start C dumpingQuentin Carbonneaux
2016-03-19add code to generate typesQuentin Carbonneaux
2016-03-18start work on an abi fuzzerQuentin Carbonneaux
2016-03-18calls now use rax all the time...Quentin Carbonneaux
2016-03-18remove spurious assignments in regaQuentin Carbonneaux
2016-03-18more thorough abi testingQuentin Carbonneaux
2016-03-18oops, nul terminate string tokensQuentin Carbonneaux
2016-03-18lamely handle swap of sse registersQuentin 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-17parse fixes for struct returnQuentin Carbonneaux
2016-03-16add unsigned division and remainderQuentin Carbonneaux
2016-03-16add shift instructionsQuentin Carbonneaux
2016-03-16refine comment of OpDesc.sflagQuentin Carbonneaux
2016-03-16document oddity in seljmp()Quentin Carbonneaux
2016-03-16test comparison elimination in iselQuentin Carbonneaux
2016-03-09be more precise in load typesQuentin Carbonneaux
2016-03-09use opdesc[] in isel.cQuentin Carbonneaux
2016-03-09Ori says we have to use "check"Quentin Carbonneaux
2016-03-08add more info in opdesc[]Quentin Carbonneaux
2016-03-08add a default align for data defsQuentin Carbonneaux
2016-03-07add test in fpcnv.ssaQuentin Carbonneaux
2016-03-07add new cast instructionQuentin Carbonneaux
2016-03-07test new conversion instructionsQuentin Carbonneaux
2016-03-07shuffle a bit visitins()Quentin Carbonneaux