added support for raw l2 statementrs inside 'fn' decls
This commit is contained in:
27
build/t.asm
27
build/t.asm
@@ -362,7 +362,34 @@ word_rpick:
|
||||
sub r12, 8
|
||||
mov [r12], rax
|
||||
ret
|
||||
word_foo:
|
||||
call word__3er
|
||||
call word__3er
|
||||
; push 1
|
||||
sub r12, 8
|
||||
mov qword [r12], 1
|
||||
call word_puts
|
||||
; push 0
|
||||
sub r12, 8
|
||||
mov qword [r12], 0
|
||||
call word_rpick
|
||||
; push 1
|
||||
sub r12, 8
|
||||
mov qword [r12], 1
|
||||
call word_rpick
|
||||
call word__2b
|
||||
call word_rdrop
|
||||
call word_rdrop
|
||||
ret
|
||||
word_main:
|
||||
; push 3
|
||||
sub r12, 8
|
||||
mov qword [r12], 3
|
||||
; push 2
|
||||
sub r12, 8
|
||||
mov qword [r12], 2
|
||||
call word_foo
|
||||
call word_puts
|
||||
; push 0
|
||||
sub r12, 8
|
||||
mov qword [r12], 0
|
||||
|
||||
@@ -594,18 +594,18 @@ word_test_2dif:
|
||||
mov rax, [r12]
|
||||
add r12, 8
|
||||
test rax, rax
|
||||
jz L_if_false_34
|
||||
jz L_if_false_40
|
||||
; push 111
|
||||
sub r12, 8
|
||||
mov qword [r12], 111
|
||||
call word_puts
|
||||
jmp L_if_end_35
|
||||
L_if_false_34:
|
||||
jmp L_if_end_41
|
||||
L_if_false_40:
|
||||
; push 222
|
||||
sub r12, 8
|
||||
mov qword [r12], 222
|
||||
call word_puts
|
||||
L_if_end_35:
|
||||
L_if_end_41:
|
||||
ret
|
||||
word_test_2delse_2dif:
|
||||
; push 2
|
||||
@@ -619,13 +619,13 @@ word_test_2delse_2dif:
|
||||
mov rax, [r12]
|
||||
add r12, 8
|
||||
test rax, rax
|
||||
jz L_if_false_36
|
||||
jz L_if_false_42
|
||||
; push 50
|
||||
sub r12, 8
|
||||
mov qword [r12], 50
|
||||
call word_puts
|
||||
jmp L_if_end_37
|
||||
L_if_false_36:
|
||||
jmp L_if_end_43
|
||||
L_if_false_42:
|
||||
call word_dup
|
||||
; push 2
|
||||
sub r12, 8
|
||||
@@ -634,19 +634,19 @@ L_if_false_36:
|
||||
mov rax, [r12]
|
||||
add r12, 8
|
||||
test rax, rax
|
||||
jz L_if_false_38
|
||||
jz L_if_false_44
|
||||
; push 60
|
||||
sub r12, 8
|
||||
mov qword [r12], 60
|
||||
call word_puts
|
||||
jmp L_if_end_39
|
||||
L_if_false_38:
|
||||
jmp L_if_end_45
|
||||
L_if_false_44:
|
||||
; push 70
|
||||
sub r12, 8
|
||||
mov qword [r12], 70
|
||||
call word_puts
|
||||
L_if_end_39:
|
||||
L_if_end_37:
|
||||
L_if_end_45:
|
||||
L_if_end_43:
|
||||
call word_drop
|
||||
ret
|
||||
word_test_2dfor:
|
||||
@@ -659,10 +659,10 @@ word_test_2dfor:
|
||||
mov rax, [r12]
|
||||
add r12, 8
|
||||
cmp rax, 0
|
||||
jle L_for_end_41
|
||||
jle L_for_end_47
|
||||
sub r13, 8
|
||||
mov [r13], rax
|
||||
L_for_loop_40:
|
||||
L_for_loop_46:
|
||||
; push 1
|
||||
sub r12, 8
|
||||
mov qword [r12], 1
|
||||
@@ -670,9 +670,9 @@ L_for_loop_40:
|
||||
mov rax, [r13]
|
||||
dec rax
|
||||
mov [r13], rax
|
||||
jg L_for_loop_40
|
||||
jg L_for_loop_46
|
||||
add r13, 8
|
||||
L_for_end_41:
|
||||
L_for_end_47:
|
||||
call word_puts
|
||||
ret
|
||||
word_test_2dfor_2dzero:
|
||||
@@ -685,17 +685,17 @@ word_test_2dfor_2dzero:
|
||||
mov rax, [r12]
|
||||
add r12, 8
|
||||
cmp rax, 0
|
||||
jle L_for_end_43
|
||||
jle L_for_end_49
|
||||
sub r13, 8
|
||||
mov [r13], rax
|
||||
L_for_loop_42:
|
||||
L_for_loop_48:
|
||||
call word_drop
|
||||
mov rax, [r13]
|
||||
dec rax
|
||||
mov [r13], rax
|
||||
jg L_for_loop_42
|
||||
jg L_for_loop_48
|
||||
add r13, 8
|
||||
L_for_end_43:
|
||||
L_for_end_49:
|
||||
call word_puts
|
||||
ret
|
||||
word_test_2dstruct:
|
||||
|
||||
BIN
build/test.o
BIN
build/test.o
Binary file not shown.
Reference in New Issue
Block a user