blob: a7e981cae9d7819eac6a3d87f43d4a2450844922 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
const vmt_Fac
:Fac.ComputeFac
func Main [in 0, out 0, local 0]
$t0 = HeapAllocZ(4)
[$t0] = :vmt_Fac
if $t0 goto :null1
Error("null pointer")
null1:
$t1 = [$t0]
$t1 = [$t1]
$a0 = $t0
$a1 = 10
call $t1
$t1 = $v0
PrintIntS($t1)
ret
func Fac.ComputeFac [in 0, out 0, local 1]
local[0] = $s0
$t0 = $a0
$s0 = $a1
$t1 = LtS($s0 1)
if0 $t1 goto :if1_else
$t1 = 1
goto :if1_end
if1_else:
$t2 = [$t0]
$t2 = [$t2]
$t3 = Sub($s0 1)
$a0 = $t0
$a1 = $t3
call $t2
$t3 = $v0
$t1 = MulS($s0 $t3)
if1_end:
$v0 = $t1
$s0 = local[0]
ret
|