rvcas
d1cf968c9b
feat(gen_dev): stub abs_freg64_freg64 for arm 64
2021-05-16 19:19: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
rvcas
92505444dd
feat(gen_dev): add match case for Float64 to Backend
2021-05-16 19:10:01 -04:00
rvcas
365f1a1f7c
feat(gen_dev): add build_num_abs_f64
2021-05-16 19:08:02 -04:00
Folkert
2b72f9e733
add HigherOrderLowLevel
2021-05-16 22:49:57 +02:00
Brendan Hansknecht
2fc46b8752
WIP:struct
2021-05-16 13:28:21 -07:00
Brendan Hansknecht
e56c46ff54
enable record updating tests since they already pass
2021-05-15 23:26:59 -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
ba58e1bbf4
expand supported record tests
2021-05-15 21:17:47 -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
Folkert
4623e0f1ae
disable i64_force_stack
2021-05-16 00:35:42 +02:00
Folkert
691fa56d50
make repl evaluate 0-argument thunk
2021-05-16 00:23:04 +02:00
Brendan Hansknecht
69c2b3527c
Add i64 multiplication to dev backend
2021-05-15 15:04:49 -07:00
Brendan Hansknecht
91e471e328
Minor cleanup of gen_dev/gen_num tests
2021-05-15 15:02:52 -07:00
Folkert
16fe609464
remove Expr::FunctionPointer
2021-05-15 21:29:10 +02:00
Folkert
357f93a2ee
store the layout of a function passed to a lowlevel
2021-05-15 20:54:26 +02:00
Folkert
8799973ffe
add update mode variables
2021-05-09 01:03:29 +02:00
Richard Feldman
0a50b0b488
Change license to UPL-1.0
...
Closes https://github.com/rtfeldman/roc/issues/1199
2021-04-21 19:18:44 -04:00
Folkert
383f35db5a
bump bumpalo
2021-04-18 14:36:47 +02:00
Richard Feldman
792a18816a
Update authors in Cargo.toml
2021-04-11 08:11:52 -04:00
Folkert
ff3f231155
remove Mode from stdlib
2021-04-01 21:42:38 +02:00
Richard Feldman
9f73c576f3
macro_use must be in crate root
2021-03-26 09:46:33 -04:00
Richard Feldman
6dc5aa2901
Allow dead code on a couple of helpers
2021-03-26 09:16:23 -04:00
Richard Feldman
e5bbca477d
Revert "Drop some unused helpers"
...
This reverts commit 09cf687349
.
2021-03-26 09:15:08 -04:00
Richard Feldman
0cd8ea5cea
Re-add indoc in the right place
2021-03-26 09:14:43 -04:00
Richard Feldman
09cf687349
Drop some unused helpers
2021-03-26 08:45:47 -04:00
Richard Feldman
202a80df44
Allow upper case acronyms in clippy
...
This is not a big deal, and not worth changing in a bunch of places
just to appease clippy.
2021-03-25 22:55:29 -04:00
Folkert
55cb780249
don't clone Layout
2021-03-22 14:08:48 +01:00
Eric Henry
7354f0e8ea
final test fix
2021-03-13 08:31:48 -05:00
Eric Henry
d47c3d7f49
test fix test
2021-03-12 22:50:48 -05:00
Eric Henry
2a90c147c6
fix Test, another one
2021-03-12 21:46:38 -05:00
Folkert
c1d0af5b39
make things compile/run
2021-03-09 20:19:34 +01:00
Eric Henry
4d046abefa
builtin maxI128 initial
2021-03-09 12:47:42 -05:00
Folkert
232c8652d5
clippy
2021-02-20 22:28:01 +01:00
Brendan Hansknecht
7d24d51392
gen_dev: generate and link zig builtins.
2021-02-14 18:15:00 -08: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
c609df2d74
gen_dev: generate all functions they may be need if a function pointer is used
2021-02-12 19:42:08 -08:00
Brendan Hansknecht
95be1a1b6d
gen_dev: add ability to pass arguments to functions
2021-02-12 19:32:34 -08:00
Brendan Hansknecht
fc3bbb9fbc
Merge remote-tracking branch 'origin' into gen_dev/funcs
2021-02-12 17:02:36 -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
Folkert
0ed87828e5
Merge remote-tracking branch 'origin/trunk' into dict
2021-02-10 15:02:53 +01:00
Folkert
ca04411523
fix tests/more uniq removal
2021-02-07 22:50:33 +01:00
Chadtech
69fcbf70ea
Merge branch 'trunk' into dict
2021-01-31 15:46:22 -05:00
Folkert
55eff1dba1
fix oversights
2021-01-28 15:32:22 +01:00
Folkert
936bf459eb
initial version of rc optimization
2021-01-28 13:14:54 +01:00
Chadtech
d787d3ef7b
Merge branch 'trunk' into dict
2021-01-25 20:25:37 -05:00
Richard Feldman
427ff12950
Merge branch 'trunk' into dev-backend
2021-01-25 00:56:14 -05:00
Chadtech
ec7d8e0dc9
Bringing in Trunk and resolving conflict
2021-01-23 21:23:31 -05: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
Chadtech
609bb21fad
Merge branch 'trunk' of github.com:rtfeldman/roc into dict
2021-01-21 22:46:47 -05:00
Folkert
15cbadf652
add inc field to Inc instruction
2021-01-22 00:16:20 +01:00
Brendan Hansknecht
244113ede2
Add floating point addition
2021-01-19 15:25:21 -08:00
Sébastien Besnier
3c5549072c
add tests for SETE instruction
2021-01-19 18:32:45 +01:00
Sébastien Besnier
1ee2c7a40f
add equality testing in gen_dev
2021-01-19 15:08:03 +01:00
Chadtech
a46a7ef06a
builtin_defs_map passed in explicitly in many places that want to monomorphize, so that we can use a new test_builtin_defs in tests. Hash test works
2021-01-18 22:38:51 -05:00
Brendan Hansknecht
71b7ee7fab
Fix test with large float
2021-01-18 12:25:50 -08:00
Brendan Hansknecht
108dfb758e
Add floats literal loading tests to dev backend
2021-01-18 12:11:13 -08:00
Brendan Hansknecht
7f8511532a
Add floats to the dev backend
2021-01-18 12:07:47 -08:00
Brendan Hansknecht
eecdc7ff85
Add a lot of general information on the dev backend
2021-01-17 10:09:34 -08:00
Brendan Hansknecht
ea3d7cfd3f
Small todo update
2021-01-16 17:10:37 -08:00
Brendan Hansknecht
2561620c18
Merge remote-tracking branch 'origin/trunk' into dev-backend
2021-01-16 17:09:56 -08:00
Folkert
ab6cb7ac93
pass stdlib by reference
2021-01-14 16:49:55 +01:00
Sébastien Besnier
85f146c688
fix extra space in comment
2021-01-14 07:59:26 +01:00
Sébastien Besnier
1961cf771a
fix subtraction error implementation
2021-01-13 21:18:59 +01:00
Sébastien Besnier
dfed317f8e
add x86_64 subtraction support for gen_dev
2021-01-13 20:56:33 +01:00
Folkert
78f653b85c
fix typo
2021-01-07 23:19:17 +01:00
rvcas
b34436e5cb
Merge branch 'trunk' into int_a_float_a
2021-01-04 09:53:45 -05:00
rvcas
a123bfa3ee
fix: tests compile and repl_eval
2021-01-04 09:46:10 -05:00
Folkert
6e0f57d7eb
make invoke work
2021-01-02 00:55:09 +01:00
Folkert
6eb8684c2b
basic implementation of invoke for gen_dev
2021-01-01 20:27:08 +01:00
Folkert
5a6bd1e187
fix gen_dev
2021-01-01 16:20:27 +01:00
Folkert
6bc0cf33a5
add unreachable instruction to the mono IR
2021-01-01 02:26:56 +01:00
Folkert
754521c4c3
all the clippy fixes
2021-01-01 00:40:41 +01:00
Folkert
728298d15a
automatic clippy fixes
2021-01-01 00:05:45 +01:00
Folkert
288190281b
remove Cond from gen_dev
2020-12-31 21:03:58 +01:00
Brendan Hansknecht
4d90ffb686
Fix typo
2020-12-28 11:39:47 -08:00
Brendan Hansknecht
f6dc256cad
Add simple high level todo list for dev backend
2020-12-23 09:44:40 -08:00
Anton-4
b085469602
Replaced large_enum_variant explanation with link to issue #800
2020-12-14 16:09:16 +01:00
Folkert
7919b2eef3
clippy
2020-12-06 22:16:53 +01:00
rvcas
79cce7c5c9
Merge branch 'trunk' into task_can
2020-12-03 19:05:10 -05:00
rvcas
4f19eedce4
chore: comment out unused stuff to reduce noise
2020-12-01 23:02:25 -05:00
Brendan Hansknecht
dcb4660273
properly add target features
2020-12-02 03:08:04 +00:00
Brendan Hansknecht
f9343ce070
Keep aarch64 tests disable
2020-12-01 18:42:59 -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
fd77d92851
Add AArch64 stack operations
2020-11-30 22:16:38 -08:00
Brendan Hansknecht
dbf335a79d
Add AArch64 to dev backend object generation
2020-11-30 02:47:18 +00: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
Brendan Hansknecht
6335555f97
Move functions into assembler
2020-11-27 19:57:33 -08:00
Brendan Hansknecht
75a4a728aa
Shorten asm function names
2020-11-27 19:53:18 -08:00
Brendan Hansknecht
04cd953246
Revamp stack setup and clean. This will be needed for other 64bit backends
2020-11-27 19:46:49 -08:00
Brendan Hansknecht
6a95738b1c
Properly align the stack when used
2020-11-26 15:14:53 -08:00
Brendan Hansknecht
c32cedc1bd
Switch to constants in calling conventions and inline assembly
2020-11-25 23:43:43 -08:00
Brendan Hansknecht
2decae8006
Fix typo
2020-11-25 22:38:04 -08:00
Richard Feldman
213ea8a79d
fix typos in comment
2020-11-26 00:02:05 -05:00