Commit Graph

205 Commits

Author SHA1 Message Date
Michael McLoughlin
9243d299e6 first pass at DATA sections 2018-12-27 11:57:46 -08:00
Michael McLoughlin
d29c6340d7 ast: change file to have a list of sections 2018-12-26 18:58:12 -08:00
Michael McLoughlin
bf6031521f ci: run benchmarks if we have any 2018-12-26 17:11:54 -08:00
Michael McLoughlin
662ae52758 examples: adapt to new const types 2018-12-26 17:08:58 -08:00
Michael McLoughlin
abd300c0e9 operand: const types 2018-12-26 16:42:39 -08:00
Michael McLoughlin
b3644ec7fc pass: tweak ordering in liveness analysis
Previously we updated the set of live in registers before live out. This
was extremely inefficient, since on each pass through live in depends on
live out.

We also change to processing the instructions in reverse order, which is
more likely to be efficient, although we should replace this with
topological sort order soon.
2018-12-24 12:48:29 -08:00
Michael McLoughlin
6d1424dc66 build: -cpuprofile flag 2018-12-21 17:38:19 -08:00
Michael McLoughlin
1ce7acee1d examples/sha1: implement full hash and test 2018-12-21 16:15:43 -08:00
Michael McLoughlin
f464082484 examples/sha1: single block 2018-12-21 00:30:59 -08:00
Michael McLoughlin
224cccd2b1 readme giving credit to original authors 2018-12-19 22:46:53 -08:00
Michael McLoughlin
c477e46045 add forking script 2018-12-19 22:32:45 -08:00
Michael McLoughlin
854271d978 examples/stadtx: commit first working example 2018-12-19 22:09:55 -08:00
Michael McLoughlin
48a84b6b13 fix signature size/alignment computation 2018-12-19 13:08:56 -08:00
Michael McLoughlin
33f5561d91 examples/components: a few more cases 2018-12-19 00:16:18 -08:00
Michael McLoughlin
ca5c7e7454 printer: add generated code warnings 2018-12-18 22:57:26 -08:00
Michael McLoughlin
213d65e481 printer: cleaner output 2018-12-18 21:05:05 -08:00
Michael McLoughlin
bc9a2aa46b gotypes: support struct fields 2018-12-17 23:28:31 -08:00
Michael McLoughlin
7f3efa1eb5 fix nil pointer dereference 2018-12-17 21:20:21 -08:00
Michael McLoughlin
1033aa4f9c add golang.org/x/tools dependency 2018-12-17 21:13:00 -08:00
Michael McLoughlin
34a3ddefcc start example/test for components access 2018-12-17 20:52:26 -08:00
Michael McLoughlin
8282c9b17e fix operand check tests 2018-12-14 22:12:28 -08:00
Michael McLoughlin
c70c642ddb attempt to make register allocation deterministic 2018-12-13 00:34:44 -08:00
Michael McLoughlin
93b53377ac add fnv1a example 2018-12-13 00:18:44 -08:00
Michael McLoughlin
b89d211ff4 examples/complex: and bugfixes 2018-12-12 00:02:22 -08:00
Michael McLoughlin
2189d38d1e examples: add sum example (its not pretty) 2018-12-11 23:02:50 -08:00
Michael McLoughlin
19d1761694 fix couple of tests 2018-12-11 22:35:01 -08:00
Michael McLoughlin
79bdb92163 fix ordering of generate script 2018-12-11 22:31:19 -08:00
Michael McLoughlin
c882e52510 printing: commit some refactors (probably broken) 2018-12-11 00:18:22 -08:00
Michael McLoughlin
4dc909a81e remove unused struct field 2018-12-08 22:16:09 -08:00
Michael McLoughlin
271670c14c avogen: make mov generator deterministic 2018-12-08 22:14:30 -08:00
Michael McLoughlin
20525e1437 get the basic add example working 2018-12-08 22:02:02 -08:00
Michael McLoughlin
5431f2edef support signatures and param load/stores 2018-12-08 21:16:03 -08:00
Michael McLoughlin
69ee0e39cb parameter loading 2018-12-08 20:14:51 -08:00
Michael McLoughlin
bbbf6399a1 gotypes: saving progress (temporarily broken tests) 2018-12-07 18:37:42 -08:00
Michael McLoughlin
c86ef5ecae gotypes 2018-12-06 21:58:51 -08:00
Michael McLoughlin
676ec39c51 add Symbol type to operand 2018-12-06 17:26:33 -08:00
Michael McLoughlin
e42eb1fb8c fix go get command 2018-12-05 00:56:02 -08:00
Michael McLoughlin
ceca3612c6 add go get to bootstrap 2018-12-05 00:53:16 -08:00
Michael McLoughlin
00c50be004 enable some more linters 2018-12-05 00:49:12 -08:00
Michael McLoughlin
fa18d7229f address some lint 2018-12-05 00:27:42 -08:00
Michael McLoughlin
022cbb7792 pass: first attempt at register allocation 2018-12-05 00:05:57 -08:00
Michael McLoughlin
9376a230cf refactor to use reg.Set 2018-12-03 22:39:43 -08:00
Michael McLoughlin
faafa00e40 pass: test for liveness 2018-12-03 20:40:43 -08:00
Michael McLoughlin
b52c67f3fb pass: naive implementation of liveness 2018-12-02 23:59:29 -08:00
Michael McLoughlin
7d4e18f4f4 ast: {Input,Output}Registers() 2018-12-02 22:29:30 -08:00
Michael McLoughlin
59548ee9f6 rename some register types 2018-12-02 21:35:33 -08:00
Michael McLoughlin
96a5c5fe1e ctors: include implicit inputs/outputs 2018-12-02 21:12:56 -08:00
Michael McLoughlin
82b31fa0da wip: adding instruction inputs and outputs 2018-12-02 17:57:12 -08:00
Michael McLoughlin
f18271ada5 add reg.Type 2018-12-02 15:15:00 -08:00
Michael McLoughlin
bc7d0fa410 pass: cfg tests 2018-12-02 13:51:03 -08:00