Commit graph

950 commits

Author SHA1 Message Date
Quentin Carbonneaux
4be29d4030 do not spill dead phis
Regalloc will be able to handle these spurious phis,
however, some other spurious dead instructions can be
emitted.  It would be better to get rid of them upfront;
maybe by modifying isel, or by inserting a proper dce
pass.  An example of that undesirable behavior is
exposed below.

@l1
	%foo =w ...
@l2
	%dead =w phi @l1 %foo, ...
2016-02-21 21:22:05 -05:00
Quentin Carbonneaux
8041947672 complete fp support for small structs
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 18:29:25 -05:00
Quentin Carbonneaux
420bf4cc8b genius or idiot? 2016-02-21 11:35:53 -05:00
Quentin Carbonneaux
3983c206f9 add lexing sugar for backward compatibility 2016-02-19 14:17:22 -05:00
Quentin Carbonneaux
97cfdc309e stop using OXxx1 and use new OLoad 2016-02-18 19:40:40 -05:00
Quentin Carbonneaux
7922b259d9 use classes in arg classification 2016-02-18 18:56:56 -05:00
Quentin Carbonneaux
a74291382c complete argcls (pretty ugly...) 2016-02-18 18:33:09 -05:00
Quentin Carbonneaux
cabad82d72 start completing the fp abi 2016-02-18 18:13:57 -05:00
Quentin Carbonneaux
70d73e2d6e fix dumb bug found by Andrew Chambers 2016-02-16 22:17:18 -05:00
Quentin Carbonneaux
7d203e7f99 better variable name in selcall() 2016-02-15 22:15:11 -05:00
Quentin Carbonneaux
6dc1cdead0 always print RACall with 3 digits 2016-02-15 22:12:54 -05:00
Quentin Carbonneaux
2cfccce680 use arguments in mandelbrot test 2016-02-15 22:06:29 -05:00
Quentin Carbonneaux
b7dd7edbd5 more fp calling conventions 2016-02-15 22:05:49 -05:00
Quentin Carbonneaux
bfef767349 be future proof in usage message :) 2016-02-15 17:45:15 -05:00
Quentin Carbonneaux
95bd36c620 fix comments in emit 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
b2fa33c32d uniformize notations in mandelbrot test 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
53a3c3c2dd scale up the mandelbrot test 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
c237d0dd74 quickly patch emit (fp load and store) 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
0ae8564b3c initialize class correctly in pmgen() 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
94b22db5c8 patch isel for store{s,d} 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
0debea30d4 completely hide xmm15 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
5900eb7b0b more stressful test for fp 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
740ebf164d partial fix argcls() in isel 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
16e430935d collect and emit fp constants 2016-02-15 16:34:16 -05:00
Quentin Carbonneaux
916555cb10 add new test by Andrew Chambers 2016-02-13 18:15:04 -05:00
Quentin Carbonneaux
52fad57580 test int syntax for one fp constant 2016-02-12 19:44:19 -05:00
Quentin Carbonneaux
1d9499172b cut code, use scanf a little more 2016-02-12 14:23:57 -05:00
Quentin Carbonneaux
8e88861807 new syntax for float literals 2016-02-12 14:20:12 -05:00
Quentin Carbonneaux
8b81a5acc6 scan ints using scanf 2016-02-12 13:56:29 -05:00
Quentin Carbonneaux
7b5e84a5d0 fix harmless typo in isel 2016-02-12 10:39:23 -05:00
Quentin Carbonneaux
b498f24b8f use ICX{np,p} to clarify enum definitions 2016-02-12 10:27:05 -05:00
Quentin Carbonneaux
c0db8eafdf patch minic for new comparisons
This solved one pending bug: comparisons of long
variables are now compiled properly.  A bug for
comparisons < and <= of pointers remain, it is
related to signedness, not width.  This can be
easily fixed by the reader!
2016-02-11 20:21:01 -05:00
Quentin Carbonneaux
66a8044fcc fixed the comparison issue 2016-02-11 20:03:35 -05:00
Quentin Carbonneaux
cfa285395e update tests to new comparisons 2016-02-11 20:02:31 -05:00
Quentin Carbonneaux
21d637efc8 fix the class for generated jumps 2016-02-11 19:10:06 -05:00
Quentin Carbonneaux
b78e030bcc fix format string bug in fptox.c 2016-02-11 19:03:42 -05:00
Quentin Carbonneaux
727abf1f73 use new float comparison in test 2016-02-11 18:59:23 -05:00
Quentin Carbonneaux
53a5d7de2a fp cmp fixes (highly untested) 2016-02-11 16:12:11 -05:00
Quentin Carbonneaux
96251837db leave the prototype to git history 2016-02-11 10:33:44 -05:00
Quentin Carbonneaux
86dfca5846 uh oh, it is 2016 now 2016-02-09 17:38:48 -05:00
Quentin Carbonneaux
c92b0268fd add one case in address matching 2016-02-09 16:56:36 -05:00
Quentin Carbonneaux
610e03f6d0 fix indent in emit 2016-02-04 14:37:28 -05:00
Quentin Carbonneaux
dd6ed823f0 more mac os compatibility in emit 2016-02-04 14:30:28 -05:00
Quentin Carbonneaux
1c75c40889 cheap rip relative hack 2016-02-04 14:28:55 -05:00
Quentin Carbonneaux
131e210b38 re-enable all optimizations 2016-02-04 14:01:07 -05:00
Quentin Carbonneaux
c2ce1375eb cheaply integrate fp in mem.c 2016-02-04 14:00:50 -05:00
Quentin Carbonneaux
b4f80258a1 comment in enum Op 2016-02-04 14:00:26 -05:00
Quentin Carbonneaux
f184585cd5 iterate correctly on blocks in spiller... 2016-02-04 13:58:23 -05:00
Quentin Carbonneaux
134cfc4541 re-add ssa construction 2016-02-04 12:58:51 -05:00
Quentin Carbonneaux
a3650701d1 fix super old bug in rega! 2016-02-04 12:22:20 -05:00