Higher Subleq | Error | Output | Subleq | ITR |
int putchar(int);
void main()
{
putchar(50);
}
|
|
2
|
top:top top sqmain
_main:
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; bp 0
bp; sp bp
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; t1 0
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+9; sp ?+5; c1 Z; Z 0; Z
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; ?+2 0 _putchar; . ?;
c2 sp
?+8; sp ?+4; t1; 0 t1; inc sp
sp; bp sp
?+8; sp ?+4; bp; 0 bp; inc sp
?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0
_putchar:
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; bp 0
bp; sp bp
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; t1 0
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; t2 0
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; t3 0
t1; t2; bp t1; c2 t1; t1 t2
t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
t3 (-1)
ax; t3 ax
Z Z end_putchar
end_putchar:
?+8; sp ?+4; t3; 0 t3; inc sp
?+8; sp ?+4; t2; 0 t2; inc sp
?+8; sp ?+4; t1; 0 t1; inc sp
sp; bp sp
?+8; sp ?+4; bp; 0 bp; inc sp
?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0
sqmain:
dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
?+6; sp ?+2; ?+2 0 _main; . ?; inc sp
Z Z (-1)
. c2:-2 c1:50
. t1:0 t2:0 t3:0
. inc:-1 Z:0 dec:1 ax:0 bp:0 sp:-sp
|
Root (ml_1.hsq:6)
Function:0 [putchar] (ml_1.hsq:1)
Keyword [int] (ml_1.hsq:1)
Param-type-list (ml_1.hsq:1)
Stackvar:-2 (:0)
Function:0 [main] (ml_1.hsq:2)
Keyword [void] (ml_1.hsq:2)
Param-type-list (ml_1.hsq:2)
Block (ml_1.hsq:3)
Postfix [(] (ml_1.hsq:4)
Label [putchar] (ml_1.hsq:4)
Expression-list (ml_1.hsq:4)
Const [50] (ml_1.hsq:4)
Function:0 [putchar] (::putchar:1)
Keyword [int] (::putchar:1)
Param-type-list (::putchar:1)
Stackvar:-2 [x] (::putchar:1)
Block (::putchar:2)
Keyword-statement [return] (::putchar:3)
OperatorIO [__out] (::putchar:3)
Unary [*] (::putchar:3) x:1
Additive [+] (::putchar:3) x:1
Variable [@bp] (::putchar:3) x:1
Const [-2] (::putchar:3) x:1
|