Richard Feldman
e59d4e57c5
Add List.appendIfOk and List.prependIfOk
2023-11-06 18:13:15 +01:00
Brendan Hansknecht
398bf2f96c
update rust code to llvm-16 and fix build
...
also update:
- llvm frame address
- erased function type
- dec passing to zig
- gen dev storage size
2023-10-23 13:50:31 -07:00
Folkert
ecf7066e6c
dev backend: provide a hardcoded implementation for equality on VOID
2023-10-10 14:28:43 +02:00
Folkert
beed1e3d6e
account for the tag id when doing a memcpy
2023-10-09 17:55:30 +02:00
Folkert
c0d67edfd3
cleanup
2023-10-09 15:40:28 +02:00
Folkert
b39c592bea
realize all list elements on the stack before writing to the list
2023-10-09 15:24:46 +02:00
Folkert
9118eeac0c
store registers at negative offset vs. the base pointer
2023-10-09 15:24:45 +02:00
Folkert
5368c145cd
make stack cleanup symmetric
...
we were doing things relative to the base pointer, but it got moved back to the caller's base pointer before use. this caused stack corruption
2023-10-09 15:24:45 +02:00
Folkert
7c67f8aafb
some debugging logs
2023-10-09 15:24:45 +02:00
Folkert
a4e314593f
actually do not pass the shadow space size
2023-10-09 15:24:43 +02:00
Folkert
c2216dfc9f
the actual fix
2023-10-09 15:24:43 +02:00
Folkert
734cfe9bce
fix how registers are stored/loaded before a function call
2023-10-09 15:24:43 +02:00
Folkert
6510591b60
fix the order
2023-10-09 15:24:42 +02:00
Folkert
ae4df42eab
another attempt
2023-10-09 15:24:42 +02:00
Folkert
968fc04d93
an attempt
2023-10-09 15:24:42 +02:00
Folkert
11bd8445b2
load stack arguments from the right location
2023-10-09 15:24:41 +02:00
Folkert
a03772d5cc
use x15 (and not x8) as a temp register
2023-10-09 15:24:41 +02:00
Folkert
1db7a8f2a5
simplify boolean not
2023-10-09 15:24:40 +02:00
Folkert
f39992bd8d
big base offsets
2023-10-09 15:24:40 +02:00
Folkert
aa261c4437
dev backend: correct bounds on negative jumps
2023-10-09 15:24:40 +02:00
Folkert
ea5632c437
pass missing argument to utf8_range
2023-10-09 15:24:39 +02:00
Folkert
a8214f2d06
remove extra dereference
2023-10-09 15:24:39 +02:00
Luke Boswell
b925e6e0bc
fix dev backend symbol name length
2023-10-09 15:24:38 +02:00
Luke Boswell
6fe3a9f927
fix gen_large_when_int aarch64
2023-10-09 15:24:38 +02:00
Agus Zubiaga
b9c003afc6
Format object_builder
2023-10-09 15:24:38 +02:00
Agus Zubiaga
ad127eb395
Add undefined rc procs for LinkedData too
2023-10-09 15:24:37 +02:00
Luke Boswell
99369dec85
implement roc_panic aarch64
2023-10-09 15:24:37 +02:00
Luke Boswell
04867dc2ea
fix pass_bool_record aarch dev backend
2023-10-09 15:24:36 +02:00
Luke Boswell
7de2915fb7
WIP setjmp longjmp roc_panic aarch64 dev
2023-10-09 15:24:36 +02:00
Luke Boswell
f1e049ddc9
fix aarch macos relocation for LinkedData
2023-10-09 15:24:36 +02:00
Folkert
8414e18ffb
attach 12-bit relocation to the addition instruction
2023-10-09 15:24:35 +02:00
Folkert
e1f173fb95
fix missing data ptr relocation for aarch64
2023-10-09 15:24:35 +02:00
Folkert
82b96395e2
fix argument passing for systemv
2023-10-09 15:24:35 +02:00
Folkert
42d324299d
fix bug in copying small bits of data (e.g. 3 bytes)
2023-10-09 15:24:34 +02:00
Folkert
66db1ce206
clippy fixes
2023-10-09 15:24:34 +02:00
Agus Zubiaga
27aab8b69a
Use X15 instead of requesting general reg
2023-10-09 15:24:34 +02:00
Agus Zubiaga
1021423e69
Use reg from StorageManager instead of XR while loading args
...
When a function returns via arg pointer, the caller sets XR (x8) to
the address where the return value goes. We were sometimes using XR
as a temporary register while loading args, which lead to a segfault
when returning.
It will now request a general available register from StorageManager
instead.
2023-10-09 15:24:33 +02:00
Folkert
905dc8cd59
pass small non-recursive tag unions via registers (like records)
2023-10-09 15:24:33 +02:00
Folkert
5f9008fbcc
on x86 (systemv, haven't checked windows) pass small structs via registers
2023-10-09 15:24:32 +02:00
Folkert
b410ae5642
fix arithmetic error in copy function
2023-10-09 15:24:31 +02:00
Folkert
6442dc2a94
use the proper temporary register
2023-10-09 15:24:31 +02:00
Folkert
9bf5bd4d39
128-bit structs, properly
2023-10-09 15:24:31 +02:00
Folkert
3a8d4b853b
an attempt at passing bigger values
2023-10-09 15:24:30 +02:00
Folkert
529703d449
fix data pointers
2023-10-09 15:24:30 +02:00
Folkert
ce34d5826b
on aarch64, unify data and function pointers
2023-10-09 15:24:30 +02:00
Folkert
311ae4c7a6
an attempt at function pointers
2023-10-09 15:24:29 +02:00
Folkert
889e2f5026
remove overflow / adds / smulh logic
...
we do all overflow operations in zig
2023-09-17 18:03:36 +02:00
Folkert
dc179a1aa6
simplify moving with the scratch register we now have
2023-09-17 18:01:08 +02:00
Folkert
dd12069013
ranges
2023-09-17 17:51:02 +02:00
Folkert
e4ddc39b63
another logical error
2023-09-17 17:45:32 +02:00