Commit graph

553 commits

Author SHA1 Message Date
Folkert
f22318e54e
move general to float 2023-09-16 18:03:59 +02:00
Folkert
8ceb705212
move big float from general to float register 2023-09-16 17:30:58 +02:00
Folkert
7f8ff25cd3
copy bigger things to the stack 2023-09-16 16:40:12 +02:00
Folkert
09d4553019
move floats from memory 2023-09-16 16:35:28 +02:00
Folkert
344b8ca29f
allow providing dec arguments 2023-09-16 16:28:47 +02:00
Folkert
0d665a89b0
give the free float registers 2023-09-16 16:28:36 +02:00
Folkert
91bd3abfaf
use ldur for float values too 2023-09-16 16:16:25 +02:00
Folkert
12584abdb7
set if overflow 2023-09-16 16:14:10 +02:00
Folkert
a8c8834a3c
actually understand this jmp address bug 2023-09-16 15:57:03 +02:00
Folkert
99873f948d
move jmp into the architecture-specific trait mods 2023-09-16 15:32:38 +02:00
Folkert
93d7054a00
refactor how we do jumps 2023-09-16 15:24:43 +02:00
Folkert
3e19f4a6fb
document how jumps are generated 2023-09-16 15:06:54 +02:00
Folkert
d4cc3a63f5
use stur instead of str 2023-09-16 13:18:40 +02:00
Folkert
63626fe808
move fp <- sp later 2023-09-16 12:31:37 +02:00
Folkert
8021f3809c
cheaty way of setting the frame pointer 2023-09-16 12:20:50 +02:00
Luke Boswell
0259c11565
fix relocation format macos aarch64 dev backend 2023-09-16 19:33:44 +10:00
Folkert
04906c1b58
fix relocation addend 2023-09-16 10:59:35 +02:00
Folkert
8ffc46d9a9
debug relocations 2023-09-16 01:36:15 +02:00
Folkert
c98d9356ac
centralize relocation logic 2023-09-16 01:35:26 +02:00
Folkert
9d0fd50ecb
move with sign extension 2023-09-16 00:29:16 +02:00
Folkert
ae296a92b7
another simplification 2023-09-15 23:07:29 +02:00
Folkert
e33414938d
simplify many methods that operate on different register widths 2023-09-15 23:07:29 +02:00
Folkert
6cbe15bf9d
crude attempt at mov_reg_reg 2023-09-15 23:07:29 +02:00
Folkert
aaf89783f9
load/store float with negative offset 2023-09-15 23:07:29 +02:00
Folkert
f9c53fc237
load/store from any float register 2023-09-15 23:07:28 +02:00
Folkert
1becbbd61b
store float to stack 2023-09-15 23:07:28 +02:00
Folkert
58875ec499
load float base32 2023-09-15 23:07:28 +02:00
Folkert
2adab91d70
forgot a nibble 2023-09-15 23:07:27 +02:00
Folkert
bcfab8d09e
fix relocation size 2023-09-15 23:07:26 +02:00
Folkert
9e3fe7b405
use supported relocation format 2023-09-15 23:07:26 +02:00
Folkert
7f927dcb0c
negative immediate add 2023-09-15 23:07:26 +02:00
Folkert
7387d2342b
return complex symbol 2023-09-15 23:07:25 +02:00
Folkert
133c03321a
movzx 2023-09-15 23:07:25 +02:00
Folkert
0b67ed8f2f
load complex returned symbol 2023-09-15 23:07:20 +02:00
Folkert
027b8aff4d
add function calls and maybe fix function call relocations? 2023-09-15 23:06:06 +02:00
Folkert
356f225b5d
add ldur and str for negative offset movs 2023-09-15 23:06:06 +02:00
Folkert
8db86fc887
mock data pointers 2023-09-15 23:06:06 +02:00
Folkert
8a9126b024
choose a different jump placeholder that fits in 27 bits 2023-09-15 23:06:05 +02:00
Folkert
84367b1a08
add float param regs 2023-09-15 23:06:05 +02:00
Folkert
93bd1b8f09
copy over the systemv implementation of load/store 2023-09-15 23:05:57 +02:00
Folkert
124b533bc0
implement some missing checked operations in the dev backend 2023-09-15 16:08:05 +02:00
Folkert
edefbe5b6b
fix wrong alignment used to (re)allocate a list 2023-09-15 00:46:26 +02:00
Folkert
4b70076e8b
remove unused argument 2023-09-14 14:55:22 +02:00
Folkert
368c2670a0
spelling 2023-09-14 14:44:04 +02:00
Folkert
fddec0ca24
fix tag layout dev backend issue 2023-09-14 14:43:29 +02:00
Folkert
fdacfce108
all gen-dev tests work again 2023-09-14 14:43:28 +02:00
Folkert
5e4f43e1d8
checkpoint 2023-09-14 14:43:24 +02:00
Folkert
3c8dbce72e
fix alignment bug in list literals 2023-09-14 14:39:15 +02:00
Folkert
44777c5cac
fix recursive tag memory layout 2023-09-14 14:39:15 +02:00
Folkert
1cb57859cf
remove overly strict assert 2023-09-14 14:39:14 +02:00