diff --git a/main.cc b/main.cc index 56947e4..a681293 100644 --- a/main.cc +++ b/main.cc @@ -1,5 +1,6 @@ #include #include +#include #include "ast.h" #include "ir.h" #include "ir_compiler.h" diff --git a/sl_necpu_runtime.s b/sl_necpu_runtime.s index 1d456ca..b607622 100644 --- a/sl_necpu_runtime.s +++ b/sl_necpu_runtime.s @@ -28,13 +28,13 @@ slr_print_one: ifeq jump slr_print_one.int comp r:0, 0 ifeq jump slr_print_one.nil - comp r:0, slr_true_val: + comp r:0, slr_true_val ifeq jump slr_print_one.true - comp r:0, slr_false_val: + comp r:0, slr_false_val ifeq jump slr_print_one.false ; Not simple, extract the tagval sub r:0, 4 - copy rp:0, r:1 + copy rp32:0, r:1 and r:1, 0xf0000000 comp r:1, SLR_TAG_function ifeq jump slr_print_one.fn @@ -66,13 +66,13 @@ slr_print_one: call print pop r:0 push r:0 - copy rp:0, r:0 + copy rp32:0, r:0 call print_dec copy slr_print_one.fn2msg, r:0 call print pop r:0 add r:0, 4 - copy rp:0, r:0 + copy rp32:0, r:0 call print_dec copy slr_print_one.fn3msg, r:0 call print @@ -144,177 +144,177 @@ slr_printl: _slr_printl: comp r:SLR_ARGCOUNT, 0 ifeq jump _slr_printl.leave - mov r:2, r:0 + copy r:2, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 1 ifeq jump _slr_printl.leave - mov r:3, r:0 + copy r:3, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 2 ifeq jump _slr_printl.leave - mov r:4, r:0 + copy r:4, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 3 ifeq jump _slr_printl.leave - mov r:5, r:0 + copy r:5, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 4 ifeq jump _slr_printl.leave - mov r:6, r:0 + copy r:6, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 5 ifeq jump _slr_printl.leave - mov r:7, r:0 + copy r:7, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 6 ifeq jump _slr_printl.leave - mov r:8, r:0 + copy r:8, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 7 ifeq jump _slr_printl.leave - mov r:9, r:0 + copy r:9, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 8 ifeq jump _slr_printl.leave - mov r:10, r:0 + copy r:10, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 9 ifeq jump _slr_printl.leave - mov r:11, r:0 + copy r:11, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 10 ifeq jump _slr_printl.leave - mov r:12, r:0 + copy r:12, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 11 ifeq jump _slr_printl.leave - mov r:13, r:0 + copy r:13, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 12 ifeq jump _slr_printl.leave - mov r:14, r:0 + copy r:14, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 13 ifeq jump _slr_printl.leave - mov r:15, r:0 + copy r:15, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 14 ifeq jump _slr_printl.leave - mov r:16, r:0 + copy r:16, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 15 ifeq jump _slr_printl.leave - mov r:17, r:0 + copy r:17, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 16 ifeq jump _slr_printl.leave - mov r:18, r:0 + copy r:18, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 17 ifeq jump _slr_printl.leave - mov r:19, r:0 + copy r:19, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 18 ifeq jump _slr_printl.leave - mov r:20, r:0 + copy r:20, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 19 ifeq jump _slr_printl.leave - mov r:21, r:0 + copy r:21, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 20 ifeq jump _slr_printl.leave - mov r:22, r:0 + copy r:22, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 21 ifeq jump _slr_printl.leave - mov r:23, r:0 + copy r:23, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 22 ifeq jump _slr_printl.leave - mov r:24, r:0 + copy r:24, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 23 ifeq jump _slr_printl.leave - mov r:25, r:0 + copy r:25, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 24 ifeq jump _slr_printl.leave - mov r:26, r:0 + copy r:26, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 25 ifeq jump _slr_printl.leave - mov r:27, r:0 + copy r:27, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 26 ifeq jump _slr_printl.leave - mov r:28, r:0 + copy r:28, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 27 ifeq jump _slr_printl.leave - mov r:29, r:0 + copy r:29, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print comp r:SLR_ARGCOUNT, 28 ifeq jump _slr_printl.leave - mov r:30, r:0 + copy r:30, r:0 call slr_print_one - mov _slr_printl.space, r:0 + copy _slr_printl.space, r:0 call print .leave: copy _slr_printl.newline, r:0