rendered paste bodydiff --git a/main.cc b/main.cc
index 56947e4..a681293 100644
--- a/main.cc
+++ b/main.cc
@@ -1,5 +1,6 @@
#include <iostream>
#include <cstring>
+#include <cstdio>
#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