Commit graph

59 commits

Author SHA1 Message Date
Folkert
96498d667e remove usize dev gen 2021-11-21 13:25:39 +01:00
Folkert
02d4828946 gen_dev working 2021-11-21 00:35:28 +01:00
satotake
e064deca76 add x86_64 Int neq support for gen_dev 2021-11-19 16:50:41 +00:00
satotake
71bef85984 add x86_64 Int Num.neg support for gen_dev 2021-11-16 15:22:32 +00:00
Kevin Sjöberg
f6d055dc62 Correct minor spelling mistakes 2021-11-06 15:29:08 +01:00
Anton-4
9af09273b3 update to rust 1.56.1 2021-11-02 14:10:01 +01:00
Folkert
54429162ad clippy 2021-11-01 23:19:47 +01:00
Brendan Hansknecht
95f29c4d5b Remove stale comment about F16 2021-09-24 08:35:34 -07:00
Brendan Hansknecht
d1021d652d Add StrCat support and update hello-zig to support dev backend 2021-09-24 08:31:31 -07:00
Brendan Hansknecht
2f24067267 Add small string support to the dev backend 2021-09-24 08:12:42 -07:00
Brendan Hansknecht
d3c344e4da Add macros for common builtin types 2021-09-21 15:38:46 -07:00
Brendan Hansknecht
1a6ca4be59 Convert layout map to store Layouts in order to avoid unsafe mangling 2021-09-21 15:27:21 -07:00
Brendan Hansknecht
006fe3beff Remove borrow constraint, it is used for refcounting before the backend 2021-09-21 15:09:10 -07:00
Brendan Hansknecht
1fb0c8043f Optimize away unnecessary jump right before return 2021-09-21 00:14:13 -07:00
Brendan Hansknecht
54e2792b12 Fix typo 2021-09-20 23:41:20 -07:00
Brendan Hansknecht
16d098da5e Add join points and tail call optimization to the dev backend. 2021-09-20 23:13:30 -07:00
Brendan Hansknecht
0696044a5c Update dev backend to allow reusing stack space and using less memory 2021-09-05 21:21:44 -07:00
Brendan Hansknecht
05bea50730 Fix freeing of float registers 2021-09-05 21:18:32 -07:00
Brendan Hansknecht
d9d0d0c0af Refactor dev backend to deal with layouts within specific backends. Just check constraints at high level 2021-09-03 10:54:51 -07:00
Brendan Hansknecht
5066b19901 Clippy lint and cleanup 2021-08-24 19:10:42 -07:00
Brendan Hansknecht
cc1b7df06a Merge branch 'trunk' into gen-dev/records-base 2021-08-14 21:21:31 -07:00
Anton-4
314503cf7f fixed typos, added typos checking to CI 2021-06-05 20:02:54 +02:00
Richard Feldman
2909c06e72 Add tail_call to ASM trait 2021-05-24 21:41:37 -04:00
Richard Feldman
595c704e88 Generate roc_alloc etc in dev_num tests 2021-05-24 21:36:27 -04:00
Richard Feldman
b3758727e5
Merge branch 'trunk' into gen-dev/div-i64 2021-05-17 00:04:14 -04:00
rvcas
388caf9460 feat(gen_dev): Backend64
implement build_num_abs_f64 for generic 64 bit archs
2021-05-16 19:17:00 -04:00
rvcas
65cc9b54fa feat(gen_dev): add method to Assembler trait 2021-05-16 19:16:01 -04:00
Brendan Hansknecht
2fc46b8752 WIP:struct 2021-05-16 13:28:21 -07:00
Brendan Hansknecht
6a38ec03ed enable returning structs
That being said the support is very limited. It really only supports
single field structs and the special case of 2 ints. I realized that
general support for returning structs requires a calling conv extension
for returning them. Instead of adding all of the calling conv versions,
I just added a few basic cases that are shared accross calling conv. It
turns out that the calling conv extension is quite detailed for how it
works in Arm. X86 isn't too detailed overall.
2021-05-15 23:01:23 -07:00
Brendan Hansknecht
210004529d float and nested records to the dev backend 2021-05-15 21:05:51 -07:00
Brendan Hansknecht
950d380ea0 Add records to the dev backend 2021-05-15 20:18:04 -07:00
Brendan Hansknecht
69c2b3527c Add i64 multiplication to dev backend 2021-05-15 15:04:49 -07:00
Folkert
c1d0af5b39 make things compile/run 2021-03-09 20:19:34 +01:00
Brendan Hansknecht
a783be3332 gen_dev: add switch statements. This also fixes a small bug with comparisons. 2021-02-13 15:35:55 -08:00
Brendan Hansknecht
95be1a1b6d gen_dev: add ability to pass arguments to functions 2021-02-12 19:32:34 -08:00
Brendan Hansknecht
5a3ec0c0ac Switch to base pionter offset addressing.
This change will be needed to deal with passing function arguments.
Without this change, we would need to do multiple passes due to function
arguments being on top of the stack and conflicting with variables.
2021-02-12 17:02:25 -08:00
Brendan Hansknecht
846c82961f gen_dev: add basic function support 2021-02-10 22:38:58 -08:00
Brendan Hansknecht
9032c8c43b Expand register names for more readability 2021-01-21 21:14:21 -08:00
Brendan Hansknecht
5cabdd83b0 Merge remote-tracking branch 'origin/trunk' into dev-backend 2021-01-21 21:01:10 -08:00
Brendan Hansknecht
244113ede2 Add floating point addition 2021-01-19 15:25:21 -08:00
Sébastien Besnier
1ee2c7a40f add equality testing in gen_dev 2021-01-19 15:08:03 +01:00
Brendan Hansknecht
7f8511532a Add floats to the dev backend 2021-01-18 12:07:47 -08:00
Brendan Hansknecht
2561620c18 Merge remote-tracking branch 'origin/trunk' into dev-backend 2021-01-16 17:09:56 -08:00
Sébastien Besnier
dfed317f8e add x86_64 subtraction support for gen_dev 2021-01-13 20:56:33 +01:00
Folkert
754521c4c3 all the clippy fixes 2021-01-01 00:40:41 +01:00
Brendan Hansknecht
4d90ffb686 Fix typo 2020-12-28 11:39:47 -08:00
Brendan Hansknecht
be979b4218 Add immediate addition and subtraction for AArch46 2020-12-01 18:29:10 -08:00
Brendan Hansknecht
f9d571ebc2 Always inline assembly functions and calling conventions 2020-11-30 23:35:23 -08:00
Brendan Hansknecht
ce55313515 Add AArch64 dev backend frame 2020-11-29 18:23:00 -08:00
Brendan Hansknecht
eb8ec4a08d Reorginize assembler to be more risc friendly 2020-11-27 20:38:40 -08:00