69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
|
|
meta.source-filename "Simple.im"
|
||
|
|
|
||
|
|
ivy.package-scope "net.doorstuck.test"
|
||
|
|
|
||
|
|
ivy.package-ref "std.io"
|
||
|
|
|
||
|
|
ivy.module {
|
||
|
|
%cout = ivy.pool.ident @cout -> #ivy.pool-slot
|
||
|
|
%StringBuilder = ivy.pool.ident @std.lang.StringBuilder -> #ivy.pool-slot
|
||
|
|
|
||
|
|
%.str.0 = ivy.pool.string "Answer: " -> #ivy.pool-slot
|
||
|
|
|
||
|
|
%.sel.o-append = ivy.pool.selector append -> #ivy.pool-slot
|
||
|
|
%.sel.o-to-string = ivy.pool.selector to-string -> #ivy.pool-slot
|
||
|
|
%.sel.o-put = ivy.pool.selector put -> #ivy.pool-slot
|
||
|
|
|
||
|
|
%.i.0 = i32.constant 0
|
||
|
|
%.i.1 = i32.constant 1
|
||
|
|
%.i.4 = i32.constant 4
|
||
|
|
%.i.32 = i32.constant 32
|
||
|
|
%.i.64 = i32.constant 64
|
||
|
|
|
||
|
|
ivy.init-text {
|
||
|
|
$X0 = *ivy.LDR %.i.32 -> i32
|
||
|
|
$X1 = *ivy.LDR %.i.64 -> i32
|
||
|
|
$X2 = *ivy.MUL $X0, $X1 : (i32, i32) -> i32
|
||
|
|
|
||
|
|
*ivy.PUSH $X2 : i32
|
||
|
|
%.bp.0 = ivy.bp-slot 0 -> #ivy.bp-slot
|
||
|
|
|
||
|
|
$X4 = *ivy.LDR %.i.64 -> i32
|
||
|
|
$X5 = *ivy.LDR %.i.4 -> i32
|
||
|
|
$X6 = *ivy.DIV $X4, $X5 : (i32, i32) -> i32
|
||
|
|
|
||
|
|
*ivy.PUSH $X6 : i32
|
||
|
|
%.bp.1 = ivy.bp-slot 1 -> #ivy.bp-slot
|
||
|
|
|
||
|
|
$X8 = *ivy.LDR %.bp.0 : #ivy.bp-slot -> i32
|
||
|
|
$X9 = *ivy.LDR %.bp.1 : #ivy.bp-slot -> i32
|
||
|
|
$X10 = *ivy.ADD $X8, $X9 : (i32, i32) -> i32
|
||
|
|
|
||
|
|
*ivy.PUSH $X10 : i32
|
||
|
|
%.bp.2 = ivy.bp-slot 2 -> #ivy.bp-slot
|
||
|
|
|
||
|
|
%10 = *ivy.LDR %StringBuilder : #ivy.pool-slot -> #ivy.id
|
||
|
|
|
||
|
|
%20 = *ivy.LDR %.sel.o-append : #ivy.pool-slot -> #ivy.id
|
||
|
|
%21 = *ivy.LDR %.str.0 : #ivy.pool-slot -> #ivy.id
|
||
|
|
*ivy.PUSH %21 : #ivy.id
|
||
|
|
*ivy.MSG %10, %20, %.i.1 : (#ivy.id, #ivy.id, i32) -> void
|
||
|
|
|
||
|
|
%7 = *ivy.LDR %.bp.2 : ptr -> i32
|
||
|
|
*ivy.PUSH %7 : i32
|
||
|
|
*ivy.MSG %10, %20, %.i.1 : (#ivy.id, #ivy.id, i32) -> void
|
||
|
|
|
||
|
|
%23 = *ivy.LDR %.sel.o-to-string : #ivy.pool-slot -> #ivy.id
|
||
|
|
%8 = *ivy.MSG %10, %23, %.i.0 : (#ivy.id, #ivy.id, i32) -> #ivy.id
|
||
|
|
|
||
|
|
%9 = *ivy.LDR %cout : #ivy.pool-slot -> #ivy.id
|
||
|
|
%24 = *ivy.LDR %.sel.o-put : #ivy.pool-slot -> #ivy.id
|
||
|
|
|
||
|
|
*ivy.PUSH %8 : #ivy.id
|
||
|
|
|
||
|
|
*ivy.MSG %9, %24, %.i.1 : (#ivy.id, #ivy.id, i32) -> void
|
||
|
|
|
||
|
|
*ivy.RET-N : ()
|
||
|
|
}
|
||
|
|
}
|