Commit graph

132 commits

Author SHA1 Message Date
Quentin Carbonneaux
47304da835 cosmetics in isel.c 2016-02-23 12:19:30 -05:00
Quentin Carbonneaux
e301a51457 fix uninitialized variable in selpar() 2016-02-23 11:27:23 -05:00
Quentin Carbonneaux
82d5bbc0bc patch return, might not work 2016-02-23 10:54:56 -05:00
Quentin Carbonneaux
b75c211dbf fix buggy name changes in isel 2016-02-22 15:14:28 -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
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
7d203e7f99 better variable name in selcall() 2016-02-15 22:15:11 -05:00
Quentin Carbonneaux
b7dd7edbd5 more fp calling conventions 2016-02-15 22:05:49 -05:00
Quentin Carbonneaux
94b22db5c8 patch isel for store{s,d} 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
7b5e84a5d0 fix harmless typo in isel 2016-02-12 10:39:23 -05:00
Quentin Carbonneaux
21d637efc8 fix the class for generated jumps 2016-02-11 19:10:06 -05:00
Quentin Carbonneaux
53a5d7de2a fp cmp fixes (highly untested) 2016-02-11 16:12:11 -05:00
Quentin Carbonneaux
c92b0268fd add one case in address matching 2016-02-09 16:56:36 -05:00
Quentin Carbonneaux
2c351452b1 add cheapo static assert in isel 2016-01-29 10:48:14 -05:00
Quentin Carbonneaux
7bf505605f fix spacing 2016-01-22 13:29:47 -05:00
Quentin Carbonneaux
9a837884c6 force warning with XMM15 in rsave[] 2016-01-04 04:29:16 -05:00
Quentin Carbonneaux
b871c261a1 delete callclb altogether 2015-12-18 20:32:54 -05:00
Quentin Carbonneaux
573abcff02 make call{def,use} fp aware 2015-12-18 20:31:08 -05:00
Quentin Carbonneaux
d43958ee71 fix isel typo 2015-12-18 13:16:40 -05:00
Quentin Carbonneaux
587d02df4f uniformize argument fixing 2015-12-10 16:57:41 -05:00
Quentin Carbonneaux
1dc0089684 wip on instruction selection 2015-12-08 13:39:30 -05:00
Quentin Carbonneaux
5097cf1d42 stores becomes storeh 2015-11-30 10:18:03 -05:00
Quentin Carbonneaux
c744281317 uniformize looping on instructions
I am actually not sure if "i-b->ins < b->nins" is the best way,
maybe the comparison with the last instruction is a little more
efficient...  At least it is uniform now.
2015-11-16 17:54:16 -05:00
Quentin Carbonneaux
6ec5890628 change debug of ABI to A 2015-11-13 15:22:12 -05:00
Quentin Carbonneaux
46f99ac5b7 this emit was an emiti 2015-11-01 00:35:36 -04:00
Quentin Carbonneaux
5b54910adc add simple dce into isel
This looks simple, but it's unclear that the use counts
are correct or at least sound after all the instruction
massaging that happens for calls/jumps.
2015-10-30 13:44:53 -04:00
Quentin Carbonneaux
0a84de5e53 finish isel adressing modes and clear the code 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
d272f0896b simplify constant handling in amatch() 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
10ef1c132b store constant addresses in Mem.offset 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
d1f048bc9c don't share mems containing temporaries
This can cause trouble in register allocation when
these temporaries get replaced by registers.  On
the other hand, offsetted slots and constants
can safely be shared.
2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
7ed3303036 mention addressing modes in isel main comment 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
04b66d38db start integrating RAMem references 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
b33febc25c prepare for using memory refs 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
82d79017ff fix test for load folding 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
e205856bc6 stick scales close to their instruction 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
97db80da31 start work on fusing loads in arithmetic 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
475e90a371 first attempt at address matching 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
8ef0e2d027 cosmetics on address numbering code 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
b44f46fafc store addressability infos in a struct 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
639142f44c do not give an addressability number to scales 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
5e43482c11 store child matchings in the addressing table 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
4185168edc missed a few cases in the tree automaton 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
bb5f95c192 start adress mode recognition 2015-10-30 13:20:42 -04:00
Quentin Carbonneaux
4bce97b16b rename spill field in Tmp to slot 2015-10-30 13:20:42 -04:00