Commit graph

201 commits

Author SHA1 Message Date
Folkert
e7791443e6
impl and tests for big recursive tag unions 2023-06-07 12:53:25 +02:00
Folkert
f5578e71b6
movzx function return values, to clear upper bits in zig function results 2023-06-07 12:52:35 +02:00
Folkert
515d60a138
many extra gen_primitives tests for gen-dev 2023-06-07 12:52:33 +02:00
Folkert
ea2a016fd0
small recursive unions, too 2023-06-07 12:51:11 +02:00
Folkert
27ccf4a6b3
implement nonnullableunwrapped 2023-06-07 12:50:27 +02:00
Ayaz Hafiz
80a98668d5
Fix type errors 2023-06-06 16:07:51 -05:00
Ayaz Hafiz
c0e52f9e54
Fix mono tests 2023-06-06 16:04:43 -05:00
Ayaz Hafiz
5274dbcd00
Add a Newtype variant to LayoutWrapper 2023-06-06 16:03:52 -05:00
Ayaz Hafiz
457cdabc5c
Make repr private and accessible only via the interner 2023-06-06 16:01:27 -05:00
Folkert
f6fafdb019
nullable unwrapped for the dev backend 2023-06-01 00:02:38 +02:00
Folkert
4af9788b51
fix register logic bug in reset/reuse 2023-05-31 23:57:38 +02:00
Folkert
0ace44ae8c
implement reset/reuse in the dev backend 2023-05-31 23:57:38 +02:00
Folkert
8833096a07
clippy 2023-05-31 23:57:37 +02:00
Folkert
c24312a045
fix logic error 2023-05-31 23:57:37 +02:00
Folkert
e33c2b3c84
first working linked list test 2023-05-31 23:57:36 +02:00
Folkert
97aba2da41
add static offset to ptr read 2023-05-31 23:57:35 +02:00
Ayaz Hafiz
a67c148be7
Convert LayoutRepr::Struct into a tuple variant 2023-05-16 11:58:16 -05:00
Brian Carroll
cfcd2a5289
Merge pull request #5312 from roc-lang/dev-refcount-seamless-slice
Dev refcount seamless slice
2023-05-14 18:37:23 +01:00
Folkert
8ba3fd082d
dev backend: treat box like a machine-sized integer when storing to register 2023-05-14 15:20:42 +02:00
Folkert
8770668688
implement add saturated for the dev backend 2023-05-14 15:20:42 +02:00
Ayaz Hafiz
741d242486
Fix repr matching in dev backend 2023-05-11 15:16:12 -05:00
Ayaz Hafiz
744e8ca68d
Use layout repr to determine register width 2023-05-11 14:15:58 -05:00
Ayaz Hafiz
1b84cbafe3
Only compare reprs in gen_dev 2023-05-11 12:48:38 -05:00
Ayaz Hafiz
f100e8753c
Introduce the concept of SemanticRepr 2023-05-10 13:51:04 -05:00
Ayaz Hafiz
c3eeb5e2cc
Wrap layouts in a LayoutRepr constructor
Part 1 of support semantic layout representations.
2023-05-10 13:22:10 -05:00
Folkert
44e5d7459e
fix lambda set case not handled 2023-05-07 20:31:45 +02:00
Folkert de Vries
deb1e9952d
Merge pull request #5365 from roc-lang/dev-backend-cli
Dev backend list tests
2023-05-07 14:47:39 +02:00
Folkert
6ed899d8be
indirec inc/dec generation in mono helpers 2023-05-05 15:02:21 +02:00
Basile Henry
9a2afbb09b gen_dev: Implement builtins Num.isNan, Num.isFinite, Num.isInfinite 2023-05-03 11:12:01 +01:00
Basile Henry
d8b658da5d gen_dev: Add is_nan_freg_reg64 2023-05-03 11:12:01 +01:00
Basile Henry
1391920d0e gen_dev: Add MOVQ/MOVD to x86 backend 2023-05-03 11:12:01 +01:00
Folkert
fb123b8990
lambda set unwrapping 2023-05-02 22:31:57 +02:00
Folkert
0fa85fe91d
don't copy zero-sized types to the stack 2023-05-02 22:31:57 +02:00
Folkert
f383ff14f8
helper for generating dec functions 2023-05-02 22:31:56 +02:00
Folkert
ce36069d57
thread layout_ids through for future inc/dec function codegen 2023-05-02 22:31:55 +02:00
Folkert
9e8854614a
fix reading float from a pointer 2023-05-02 22:31:54 +02:00
Folkert
e4b0d77f2e
pass floats independently of general registers 2023-05-02 22:31:54 +02:00
Folkert
6594fc0a90
fully implement our crude memcpy 2023-05-01 18:41:51 +02:00
Folkert
2e7f53fe4a
copy of boxed 2023-05-01 18:41:50 +02:00
Folkert de Vries
a5a91d428f
Merge pull request #5336 from roc-lang/dev-backend-list-map
dev backend: many more builtins
2023-05-01 10:20:15 +02:00
Folkert
23cc8046b1
fix build_ptr_cast (it was completely wrong) 2023-04-28 21:53:51 +02:00
Folkert
5363b95c5f
move with sign extension 2023-04-27 19:40:57 +02:00
Folkert
10a497fdde
sign extension WIP 2023-04-27 12:24:25 +02:00
Folkert
d10ae2412a
num conversion 2023-04-27 11:36:56 +02:00
Folkert
1dd4b470dd
more casts, u128 literals 2023-04-27 11:18:11 +02:00
Folkert
fc391b1ab2
clippy 2023-04-27 00:39:30 +02:00
Folkert
f95c79bb53
copy arguments that are not size multiple of 8 2023-04-26 23:58:01 +02:00
Folkert
048615e6a5
fix wrong temp symbol used 2023-04-26 23:33:39 +02:00
Folkert
eaef21f7d4
intcast cases (probably wrong) 2023-04-26 22:26:39 +02:00
Folkert
f6ebeff298
unboxing of non-recursive tag unions 2023-04-26 22:17:18 +02:00