Commit graph

643 commits

Author SHA1 Message Date
Quentin Carbonneaux
9db053d1b8 typo in isel (abi fuzzer) 2016-03-22 10:40:54 -04:00
Quentin Carbonneaux
cbb0f5aa83 cleanup at the end of abitest.sh 2016-03-22 10:35:36 -04:00
Quentin Carbonneaux
14628baf40 dumb switch mistake in isel (abi fuzzer) 2016-03-22 10:34:39 -04:00
Quentin Carbonneaux
b8e3bc6aa0 fix bug in type definitions in abi.ml 2016-03-22 10:34:39 -04:00
Quentin Carbonneaux
665a45003a fix incorrect size increment in abi (abi fuzzer)
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-22 10:34:31 -04:00
Quentin Carbonneaux
6b58aaa7ea add the ability to run with a seed 2016-03-21 13:55:38 -04:00
Quentin Carbonneaux
453baf68e0 fix bug in IL checking 2016-03-21 13:55:25 -04:00
Quentin Carbonneaux
58e0505068 compile tests with debug options 2016-03-21 13:44:22 -04:00
Quentin Carbonneaux
890e85c8d1 add abitest.sh tool 2016-03-21 13:42:16 -04:00
Quentin Carbonneaux
e004f1dd48 wrap up abi.ml with a main function 2016-03-21 13:41:47 -04:00
Quentin Carbonneaux
3b6dc136a5 tools/abi.ml seems to work 2016-03-21 13:09:24 -04:00
Quentin Carbonneaux
2ff47b8c17 start il generation 2016-03-20 21:59:29 -04:00
Quentin Carbonneaux
2829059c8a finish OutC, use uniform distributions 2016-03-20 12:23:46 -04:00
Quentin Carbonneaux
a5c00b144c ocaml and c chars are incompatible 2016-03-20 09:43:20 -04:00
Quentin Carbonneaux
f0a91ffe5e start C dumping 2016-03-19 22:51:53 -04:00
Quentin Carbonneaux
5f45999036 add code to generate types 2016-03-19 19:01:00 -04:00
Quentin Carbonneaux
47cebe349c start work on an abi fuzzer 2016-03-18 22:30:27 -04:00
Quentin Carbonneaux
29ea37fa06 calls now use rax all the time... 2016-03-18 16:11:42 -04:00
Quentin Carbonneaux
95df8e55fe remove spurious assignments in rega 2016-03-18 15:44:26 -04:00
Quentin Carbonneaux
f625e49cb0 more thorough abi testing 2016-03-18 15:23:03 -04:00
Quentin Carbonneaux
99eab2d147 oops, nul terminate string tokens 2016-03-18 15:21:17 -04:00
Quentin Carbonneaux
12e22bb1b4 lamely handle swap of sse registers 2016-03-18 15:15:02 -04:00
Quentin Carbonneaux
b19b9a27a0 handle padding correctly in types 2016-03-18 15:15:02 -04:00
Quentin Carbonneaux
d1c6c305f7 set eax before call (for variadics...) 2016-03-18 15:15:02 -04:00
Quentin Carbonneaux
3f3dce67f4 tentative support of calls with struct return 2016-03-18 15:14:55 -04:00
Quentin Carbonneaux
a93af73ff2 factor return registers computation 2016-03-18 10:54:52 -04:00
Quentin Carbonneaux
73371a0f90 small fixes in selcall()
* 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-18 10:47:57 -04:00
Quentin Carbonneaux
5e388fffbc on the way to clean use counts 2016-03-17 14:43:50 -04:00
Quentin Carbonneaux
240cfcd5cd support return of structs 2016-03-17 13:41:12 -04:00
Quentin Carbonneaux
2889d44f24 parse fixes for struct return 2016-03-17 13:02:18 -04:00
Quentin Carbonneaux
ce7fd0cb49 add unsigned division and remainder 2016-03-16 11:30:57 -04:00
Quentin Carbonneaux
db6f7ad72d add shift instructions 2016-03-16 11:18:28 -04:00
Quentin Carbonneaux
567c18398f refine comment of OpDesc.sflag 2016-03-16 11:00:49 -04:00
Quentin Carbonneaux
6cba2db949 document oddity in seljmp() 2016-03-16 10:59:26 -04:00
Quentin Carbonneaux
7e1db6cc65 test comparison elimination in isel 2016-03-16 10:41:01 -04:00
Quentin Carbonneaux
7d79f9e216 be more precise in load types 2016-03-09 11:52:56 -05:00
Quentin Carbonneaux
4d41a720d0 use opdesc[] in isel.c 2016-03-09 11:50:44 -05:00
Quentin Carbonneaux
851e0f7d43 Ori says we have to use "check" 2016-03-09 10:17:30 -05:00
Quentin Carbonneaux
8645a5ae23 add more info in opdesc[] 2016-03-08 16:47:34 -05:00
Quentin Carbonneaux
995deebfd7 add a default align for data defs 2016-03-08 11:05:10 -05:00
Quentin Carbonneaux
096b447699 add test in fpcnv.ssa 2016-03-07 14:22:02 -05:00
Quentin Carbonneaux
cebec4dd47 add new cast instruction 2016-03-07 13:46:44 -05:00
Quentin Carbonneaux
9de2a588da test new conversion instructions 2016-03-07 13:46:11 -05:00
Quentin Carbonneaux
7d642e85cc shuffle a bit visitins() 2016-03-07 13:41:18 -05:00
Quentin Carbonneaux
a55dd6fc07 refine immediate reload test
We only need to load all the bits of a large
constant when it is used in long context.
2016-03-07 13:38:55 -05:00
Quentin Carbonneaux
4c855e3e12 cosmetics in err() 2016-03-07 12:51:57 -05:00
Quentin Carbonneaux
26151e918a oops symbol conflict in abi3... 2016-03-07 12:31:06 -05:00
Quentin Carbonneaux
005c7e7c5e fix two bad bugs in abi classification
The conditions to put a struct in memory or
not were wrong.  And I misused the cls field
of the AClass struct.
2016-03-07 12:07:34 -05:00
Quentin Carbonneaux
53efd935d7 make abi3 resistant to reassoc 2016-03-07 11:56:06 -05:00
Quentin Carbonneaux
a7ba1c3d2e complete abi3 test (fails) 2016-03-07 11:54:10 -05:00