Commit graph

525 commits

Author SHA1 Message Date
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
Folkert
a990fab16f
fix some bitshifts 2023-09-17 17:40:29 +02:00
Folkert
1a49076a30
bigger jumps with an extra register 2023-09-17 17:36:08 +02:00
Folkert
a4df2cebfb
maybe do bigger negative loads/stores? 2023-09-17 16:44:05 +02:00
Folkert
dd732736e0
clippy 2023-09-17 16:26:39 +02:00
Folkert
fca3c50240
irem/urem 2023-09-17 16:11:47 +02:00
Folkert
e0071e3265
do checked arithmetic using zig... 2023-09-17 15:48:15 +02:00
Folkert
c6593725df
improved implementation of checked arithmetic 2023-09-17 15:43:11 +02:00
Folkert
54732b5750
don't emit fmov xi, xi 2023-09-17 13:50:03 +02:00
Folkert
be9cfa7e4e
float str -> stur 2023-09-17 13:48:47 +02:00
Folkert
15d7775652
get shadow space right 2023-09-17 13:38:11 +02:00
Folkert
857c48c933
fix off by 16 2023-09-17 13:29:35 +02:00
Folkert
0f77a24a2d
simplify addition with negative imm 2023-09-16 20:22:32 +02:00
Folkert
29daf4dd5e
fix returning big structures 2023-09-16 19:31:47 +02:00
Folkert
b440c30731
mov float to general 2023-09-16 18:23:04 +02:00
Folkert
dc967f515e
32-bit float mov 2023-09-16 18:16:32 +02:00
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