aboutsummaryrefslogtreecommitdiff
path: root/putstr.lang
blob: b13e2c5e7ae79325d9ab7311447b14204ebc07ea (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
41
42
43
func putstr(char[] str) {
	int i := 0;
	while (str[i] != '\0') {
		putc(str[i]);
		i = i + 1;
	}
}

func int main() {return 0;}



/*
irfunc putstr(char[] str)
  {{{(0)
    mov t5Q <- 0Q
    jmp 7
  }}}
  {{{(7)
    mov t15Q <- t5Q
    add t15Q, 8Q
    mov t13Q <- astrQ
    add t13Q, t15Q
    load t16B <- *t13Q
    neq t16B, 0B
    jne t16B, 0Q -> 9 | 6
  }}}
  {{{(9)
    mov t25Q <- t5Q
    add t25Q, 8Q
    mov t23Q <- astrQ
    add t23Q, t25Q
    load t26B <- *t23Q
    call putc (t26B)
    mov t30Q <- t5Q
    add t30Q, 1Q
    mov t5Q <- t30Q
    jmp 7
  }}}
  {{{(6)
    ret
  }}}
*/