Commit graph

71 commits

Author SHA1 Message Date
Quentin Carbonneaux
12755db1aa fix type size computations in parser
The type sizes are important to get right because
the ABI relies on them when it emits memory blits
to pass/return structs.
2016-04-25 10:58:11 -04:00
Quentin Carbonneaux
55476d0738 refine fp conversion instructions 2016-04-22 15:11:18 -04:00
Quentin Carbonneaux
d2046e2cd0 make sure type sizes never overflow 2016-04-22 14:27:15 -04:00
Quentin Carbonneaux
bbf90069b3 disallow phi nodes in the start block
AFL found this bug.
2016-04-20 14:03:38 -04:00
Quentin Carbonneaux
84bb28c042 support calls with no return
I thought it would be harder (and maybe it is).
My fear was that a call must be always followed by
a parallel move from machine registers (this is an
assumption in both spill and rega).  This however
remains true, because the ABI code generates a
dummy "copy RAX" by accident!
2016-04-20 12:53:42 -04:00
Quentin Carbonneaux
1258bb75d2 normalize case in token names 2016-04-20 12:51:40 -04:00
Quentin Carbonneaux
657c3fa66b match jumps/ops with il text 2016-04-20 09:56:29 -04:00
Quentin Carbonneaux
c43a07086b factor some subtyping logic in clsmerge() 2016-04-18 14:03:06 -04:00
Ori Bernstein
0cedf8e6cf support trailing , in types/args/params 2016-04-16 15:37:21 -04:00
Quentin Carbonneaux
42ecd05b7f fix relic error message 2016-04-16 14:03:33 -04:00
Quentin Carbonneaux
dc2fad4462 check types on assignments 2016-04-13 12:39:57 -04:00
Quentin Carbonneaux
02b70c0cb1 bug in checking of multiple definitions 2016-04-12 14:51:50 -04:00
Quentin Carbonneaux
4cee19ea9f add missing idiv in opdesc[] 2016-04-12 14:51:50 -04:00
Quentin Carbonneaux
422c2eebae avoid a few hangs in parsing code 2016-04-12 13:06:45 -04:00
Quentin Carbonneaux
8657a7e730 check invalid instruction types 2016-04-12 13:03:37 -04:00
Quentin Carbonneaux
ce26f8625d add simple il validation 2016-04-12 12:17:04 -04:00
Quentin Carbonneaux
f2b2256ebe add a canfold field to opdesc 2016-04-07 14:20:12 -04:00
Quentin Carbonneaux
7b3f0f8424 fat il! 2016-04-04 15:44:43 -04:00
Quentin Carbonneaux
0a81036fa2 move abi code in a new file 2016-03-31 17:17:09 -04:00
Quentin Carbonneaux
729aa97b79 cleanup error handling 2016-03-31 09:15:50 -04:00
Quentin Carbonneaux
b75cb8388f new layout, put LICENSE in root 2016-03-29 10:10:22 -04:00
Renamed from src/parse.c (Browse further)