Commit graph

421 commits

Author SHA1 Message Date
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
172eae735d
Drop unused variables in gen_dev 2023-05-11 12:49:06 -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
Folkert
3c6c5a3e53
add windows cc implementation of new register picker 2023-05-03 17:57:54 +02:00
Folkert
e12a7f4f81
refactor nasty loops into recursive functions 2023-05-03 14:43:31 +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
d6885ec17a
implement List.dropAt 2023-05-02 23:30:06 +02: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
ac64e4ab87
fix for re-used DEV_TMP symbol 2023-05-02 22:31:55 +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
29bc9a2e85
short-circuit loading field from size 0 struct 2023-05-02 22:31:52 +02:00
Folkert
6594fc0a90
fully implement our crude memcpy 2023-05-01 18:41:51 +02:00
Folkert
9f8077c3a3
allow no_data return value 2023-05-01 18:41:50 +02:00
Folkert
2e7f53fe4a
copy of boxed 2023-05-01 18:41:50 +02:00
Anton-4
b0d10a134a
clippy fix 2023-05-01 13:17:39 +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
J.Teeuwissen
b8a2ea1bf2
Merge branch 'main' into drop_specialization 2023-04-29 18:31:12 +02:00
Anton-4
ff6ec21a09
Merge pull request #5324 from roc-lang/rust_version_upgrade
WIP Rust version upgrade
2023-04-29 18:01:04 +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
2aca07d889
asserted restrictions have been lifted 2023-04-27 00:43:59 +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
b648507a91
128-bit value passing code 2023-04-26 22:19:47 +02:00
Folkert
f6ebeff298
unboxing of non-recursive tag unions 2023-04-26 22:17:18 +02:00
Folkert
0f058c8b46
128-bit multiplication 2023-04-26 21:58:02 +02:00
Folkert
2b849f167f
rename register function 2023-04-26 21:56:59 +02:00
Folkert
3ebc4bb9ad
128-bit integer equality 2023-04-26 21:11:46 +02:00
Folkert
9bdf9e4b99
make mov between different-sized registers more robust 2023-04-26 14:28:40 +02:00