41 Commits

Author SHA1 Message Date
David Gonzalez Martin
0875459581 Move LLVM interface code out of bootstrap 2024-02-18 09:14:46 -06:00
David Gonzalez Martin
163357c149 Implement exec 2023-12-08 01:34:27 +01:00
David Gonzalez Martin
3074411608 Introduce file writer 2023-12-02 08:51:32 -06:00
David Gonzalez Martin
5145110fbf implement page allocator 2023-11-28 18:39:45 -06:00
David Gonzalez Martin
073f636ee9 Move bootstrap away from src 2023-11-20 09:36:04 -06:00
David Gonzalez Martin
883f0b2faa Add C transpiler 2023-11-20 01:09:51 -06:00
David Gonzalez Martin
df53762d92 commit before transpiling 2023-11-19 09:22:39 -06:00
David Gonzalez Martin
4c358c2f89 implement shifts 2023-11-13 20:49:24 -06:00
David Gonzalez Martin
f96cf16a2a implement signed division 2023-11-13 10:26:05 -06:00
David Gonzalez Martin
d390ee08f6 implement signed multiplication 2023-11-12 20:06:12 -06:00
David Gonzalez Martin
eb681dc7a1 implement and, or, xor 2023-11-12 17:21:45 -06:00
David Gonzalez Martin
35657715e9 implement add and sub 2023-11-12 11:11:06 -06:00
David Gonzalez Martin
e75f3f3a68 Fix register allocation for call argument passing 2023-11-11 09:26:09 -06:00
David Gonzalez Martin
31185e6779 hello_world: finish producing a hello world exe
Section manager redesign
Linker relocations
Using global strings
String literal fixup in sema
2023-11-10 17:06:27 -06:00
David Gonzalez Martin
73769beb32 x86_64: some encodings 2023-11-10 12:38:14 -06:00
David Gonzalez Martin
9dc5f795b2 x86_64: implicit definition of RAX after syscall 2023-11-10 11:02:17 -06:00
David Gonzalez Martin
5dceac7720 ir: don't emit constants in function instructions
This aims to improve register allocation
2023-11-10 10:43:23 -06:00
David Gonzalez Martin
da07fd5ca4 implement lea for globals and argument tweaks 2023-11-10 10:42:30 -06:00
David Gonzalez Martin
22243d296c add encoding and elf linking 2023-11-09 23:20:34 -06:00
David Gonzalez Martin
30baa0b53d Fix register allocator for barebones use 2023-11-08 22:26:22 -06:00
David Gonzalez Martin
b24bd8221e Add custom logger 2023-11-08 09:27:45 -06:00
David Gonzalez Martin
aefabd6108 almost working register allocator 2023-11-07 15:00:48 -06:00
David Gonzalez Martin
77e54285f5 instruction selection 2023-11-06 13:30:35 -06:00
David Gonzalez Martin
80ab6949d2 integrate tests into zig build API 2023-10-02 19:10:26 -06:00
David Gonzalez Martin
29dc3ffdf4 Fix release build 2023-10-02 14:20:40 -06:00
David Gonzalez Martin
d391898b95 instruction encoding 2023-10-02 13:23:00 -06:00
David Gonzalez Martin
c7bcfa1de9 instruction selection and register allocation 2023-10-01 15:43:00 -06:00
David Gonzalez Martin
bca2f024cd ir for main function 2023-09-30 12:51:58 -06:00
David Gonzalez Martin
611e611cab sema for main function 2023-09-29 18:22:34 -06:00
David Gonzalez Martin
7c8acf3e2a add jit for x86_64 2023-09-24 22:03:28 -06:00
David Gonzalez Martin
65d248588d exit process 2023-09-24 21:45:52 -06:00
David Gonzalez Martin
a2535ac512 x86_64 backend 2023-09-22 09:16:39 -06:00
David Gonzalez Martin
48c3b5e224 ir 2023-09-21 12:29:39 -06:00
David Gonzalez Martin
15a7df3f14 Barebones semantic analysis 2023-09-16 21:11:24 -06:00
David Gonzalez Martin
4e99ae0bf7 rework parser and lexer 2023-09-06 15:22:32 -06:00
David Gonzalez Martin
6616abf57f add carriage return and tabs to the lexer 2023-09-03 21:04:06 -06:00
David Gonzalez Martin
e8a2e79a00 write better lexer and parser 2023-09-03 20:44:18 -06:00
David Gonzalez Martin
619145c7e7 introduce the general structure of the compiler 2023-07-29 11:04:43 -06:00
David Gonzalez Martin
931e60e37e add binary rm-r operations 2023-07-12 09:04:58 -06:00
David Gonzalez Martin
afb8469af3 sub: test cases 2023-07-11 23:34:32 -06:00
David Gonzalez Martin
736215ffa8 First commit 2023-07-10 23:56:04 -06:00