Test: ex066

Higher SubleqErrorOutputSubleqITR
// fibonacci

void _putint(int a);
int putchar(int a);

void fib(int a, int b)
{
   if( a>1000000 ) return;
   _putint(b);
   putchar('\n');
   fib(b,a+b);
}

int main()
{
   fib(1,1);
}



1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269

   top:top top sqmain

_fib:
   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
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 Z; Z t2; Z; c2 t2
   Z t2 l1
   Z Z end_fib
l1:

   t1; t2; bp t1; c3 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putint; . ?;
   c1 sp

   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c4 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 _putchar; . ?;
   c1 sp

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c3 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   t2; t1; bp t2; c3 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t4 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 _fib; . ?;
   c3 sp

end_fib:
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+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

_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; dec Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; dec Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 _fib; . ?;
   c3 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

__putint:
   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
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; c6 Z; Z t2; Z; t3 t2
   Z t2 l2
   c5 (-1)

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putintr; . ?;
   t2; ax t2
   c1 sp
   t3; t1; dec t3; t2 t3; t3 t1
   ax; t1 ax
   Z Z end__putint

l2:

   t2; t1; bp t2; c1 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; c6 t1
   Z t1 l3
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putintr; . ?;
   t3; ax t3
   c1 sp
   ax; t3 ax
   Z Z end__putint
l3:

   c7 (-1)

   ax; dec ax
   Z Z end__putint

end__putint:
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+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

_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; c1 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

__putintr:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c8 sp
   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; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 Z; Z t2; Z; c6 t2
   Z t2 l4
   t1; t2; bp t1; c8 t1; t1 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c4 Z; Z 0; Z
   t2; t1; bp t2; c1 t2; t2 t1
   t2; t3; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t3; ax t3
   c9 sp
   t1; t2; bp t1; dec t1; t1 t2
   ?+23; ?+21; ?+24; t2 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putintr; . ?;
   t3; ax t3
   c1 sp
   t2; t1; bp t2; dec t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c8 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; c7 t2; t3 t2; t2 t1
   t1 (-1)

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; t3 t2; dec t2; t2 t1
   ax; t1 ax
   Z Z end__putintr

l4:

   ax; c6 ax
   Z Z end__putintr

end__putintr:
   ?+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

__divMod:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c11 sp
   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
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t5 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c3 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; t3 t1
   Z t1 l5
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c9 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   ax; c6 ax
   Z Z end__divMod

l5:

   t1; t2; bp t1; c3 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; dec t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z
   t3; t1; bp t3; c8 t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; dec Z; Z 0; Z

l__divMod_next:
   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c10 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c8 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c11 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; dec t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; dec t1; t1 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t1; t2; bp t1; c8 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c8 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; c8 t1; t1 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t5; t2; bp t5; c1 t5; t5 t2
   t5; t3; ?+11; t2 Z; Z ?+4; Z; 0 t5; t5 t3
   t2; t5; bp t2; dec t2; t2 t5
   t2; t1; ?+11; t5 Z; Z ?+4; Z; 0 t2; t2 t1
   t5; t1 Z; Z t5; Z; t3 t5
   Z t5 l6
   t1; t2; bp t1; c11 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c9 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t4 Z; Z 0; Z
   t4; t1; bp t4; c3 t4; t4 t1
   t4; t2; ?+11; t1 Z; Z ?+4; Z; 0 t4; t4 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   t2; t1; bp t2; c1 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; bp t1; c10 t1; t1 t2
   t1; t5; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t5
   t2; t4 Z; Z t2; Z; t5 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t2; ax t2
   c9 sp
   t5; t4; t3 t5; t2 t5; t5 t4
   ax; t4 ax
   Z Z end__divMod
l6:

   Z Z l__divMod_next

end__divMod:
   ?+8; sp ?+4; t5; 0 t5; inc sp
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+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)

. c1:-2 c3:-3 c9:-4 c6:0 c4:10 c2:1000000 c8:2 c10:3 c11:4 c5:45 c7:48

. t1:0 t2:0 t3:0 t4:0 t5:0

. inc:-1 Z:0 dec:1 ax:0 bp:0 sp:-sp

Root (ex066.hsq:19)
   Function:0 [_putint] (ex066.hsq:3)
      Keyword [void] (ex066.hsq:3)
      Param-type-list (ex066.hsq:3)
         Stackvar:-2 [a] (ex066.hsq:3)
   Function:0 [putchar] (ex066.hsq:4)
      Keyword [int] (ex066.hsq:4)
      Param-type-list (ex066.hsq:4)
         Stackvar:-2 [a] (ex066.hsq:4)
   Function:0 [fib] (ex066.hsq:6)
      Keyword [void] (ex066.hsq:6)
      Param-type-list (ex066.hsq:6)
         Stackvar:-2 [a] (ex066.hsq:6)
         Stackvar:-3 [b] (ex066.hsq:6)
      Block (ex066.hsq:7)
         Keyword-statement [if] (ex066.hsq:8)
            Relational [>] (ex066.hsq:8)
               Unary [*] (ex066.hsq:8) a:6
                  Additive [+] (ex066.hsq:8) a:6
                     Variable [@bp] (ex066.hsq:8) a:6
                     Const [-2] (ex066.hsq:8) a:6
               Const [1000000] (ex066.hsq:8)
            Keyword-statement [return] (ex066.hsq:8)
         Postfix [(] (ex066.hsq:9)
            Label [_putint] (ex066.hsq:9)
            Expression-list (ex066.hsq:9)
               Unary [*] (ex066.hsq:9) b:6
                  Additive [+] (ex066.hsq:9) b:6
                     Variable [@bp] (ex066.hsq:9) b:6
                     Const [-3] (ex066.hsq:9) b:6
         Postfix [(] (ex066.hsq:10)
            Label [putchar] (ex066.hsq:10)
            Expression-list (ex066.hsq:10)
               Const ['.'] (ex066.hsq:10)
         Postfix [(] (ex066.hsq:11)
            Label [fib] (ex066.hsq:11) fib:6
            Expression-list (ex066.hsq:11)
               Unary [*] (ex066.hsq:11) b:6
                  Additive [+] (ex066.hsq:11) b:6
                     Variable [@bp] (ex066.hsq:11) b:6
                     Const [-3] (ex066.hsq:11) b:6
               Additive [+] (ex066.hsq:11)
                  Unary [*] (ex066.hsq:11) a:6
                     Additive [+] (ex066.hsq:11) a:6
                        Variable [@bp] (ex066.hsq:11) a:6
                        Const [-2] (ex066.hsq:11) a:6
                  Unary [*] (ex066.hsq:11) b:6
                     Additive [+] (ex066.hsq:11) b:6
                        Variable [@bp] (ex066.hsq:11) b:6
                        Const [-3] (ex066.hsq:11) b:6
   Function:0 [main] (ex066.hsq:14)
      Keyword [int] (ex066.hsq:14)
      Param-type-list (ex066.hsq:14)
      Block (ex066.hsq:15)
         Postfix [(] (ex066.hsq:16)
            Label [fib] (ex066.hsq:16) fib:6
            Expression-list (ex066.hsq:16)
               Const [1] (ex066.hsq:16)
               Const [1] (ex066.hsq:16)
   Function:0 [_putintr] (::_putint:1)
      Keyword [int] (::_putint:1)
      Param-type-list (::_putint:1)
         Stackvar:-2 [x] (::_putint:1)
   Function:0 [_putint] (::_putint:2)
      Keyword [int] (::_putint:2)
      Param-type-list (::_putint:2)
         Stackvar:-2 [x] (::_putint:2)
      Block (::_putint:3)
         Keyword-statement [if] (::_putint:4)
            Relational [<] (::_putint:4)
               Unary [*] (::_putint:4) x:2
                  Additive [+] (::_putint:4) x:2
                     Variable [@bp] (::_putint:4) x:2
                     Const [-2] (::_putint:4) x:2
               Const [0] (::_putint:4)
            Block (::_putint:5)
               OperatorIO [__out] (::_putint:6)
                  Const [45] (::_putint:6)
               Keyword-statement [return] (::_putint:7)
                  Additive [+] (::_putint:7)
                     Const [1] (::_putint:7)
                     Postfix [(] (::_putint:7)
                        Label [_putintr] (::_putint:7)
                        Expression-list (::_putint:7)
                           Unary [-] (::_putint:7)
                              Unary [*] (::_putint:7) x:2
                                 Additive [+] (::_putint:7) x:2
                                    Variable [@bp] (::_putint:7) x:2
                                    Const [-2] (::_putint:7) x:2
         Keyword-statement [if] (::_putint:9)
            Relational [>] (::_putint:9)
               Unary [*] (::_putint:9) x:2
                  Additive [+] (::_putint:9) x:2
                     Variable [@bp] (::_putint:9) x:2
                     Const [-2] (::_putint:9) x:2
               Const [0] (::_putint:9)
            Keyword-statement [return] (::_putint:10)
               Postfix [(] (::_putint:10)
                  Label [_putintr] (::_putint:10) _putintr:2
                  Expression-list (::_putint:10)
                     Unary [*] (::_putint:10) x:2
                        Additive [+] (::_putint:10) x:2
                           Variable [@bp] (::_putint:10) x:2
                           Const [-2] (::_putint:10) x:2
         OperatorIO [__out] (::_putint:12)
            Const [48] (::_putint:12)
         Keyword-statement [return] (::_putint:13)
            Const [1] (::_putint:13)
   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
   Function:0 [_divMod] (::_putintr:1)
      Keyword [int] (::_putintr:1)
      Param-type-list (::_putintr:1)
         Stackvar:-2 [a] (::_putintr:1)
         Stackvar:-3 [b] (::_putintr:1)
         Stackvar:-4 [m] (::_putintr:1)
   Function:2 [_putintr] (::_putintr:2)
      Keyword [int] (::_putintr:2)
      Param-type-list (::_putintr:2)
         Stackvar:-2 [x] (::_putintr:2)
      Block (::_putintr:3)
         Keyword-statement [if] (::_putintr:4)
            Relational [>] (::_putintr:4)
               Unary [*] (::_putintr:4) x:2
                  Additive [+] (::_putintr:4) x:2
                     Variable [@bp] (::_putintr:4) x:2
                     Const [-2] (::_putintr:4) x:2
               Const [0] (::_putintr:4)
            Block (::_putintr:5)
               Declaration (::_putintr:6)
                  Keyword [int] (::_putintr:6)
                  Declarator [0] (::_putintr:6)
                     Stackvar:1 [i] (::_putintr:6)
                  Declarator [0] (::_putintr:6)
                     Stackvar:2 [j] (::_putintr:6)
               Assignment [=] (::_putintr:7)
                  Unary [*] (::_putintr:7) i:6
                     Additive [+] (::_putintr:7) i:6
                        Variable [@bp] (::_putintr:7) i:6
                        Const [1] (::_putintr:7) i:6
                  Postfix [(] (::_putintr:7)
                     Label [_divMod] (::_putintr:7)
                     Expression-list (::_putintr:7)
                        Unary [*] (::_putintr:7) x:2
                           Additive [+] (::_putintr:7) x:2
                              Variable [@bp] (::_putintr:7) x:2
                              Const [-2] (::_putintr:7) x:2
                        Const [10] (::_putintr:7)
                        Additive [+] (::_putintr:7) j:6
                           Variable [@bp] (::_putintr:7) j:6
                           Const [2] (::_putintr:7) j:6
               Assignment [=] (::_putintr:8)
                  Unary [*] (::_putintr:8) i:6
                     Additive [+] (::_putintr:8) i:6
                        Variable [@bp] (::_putintr:8) i:6
                        Const [1] (::_putintr:8) i:6
                  Postfix [(] (::_putintr:8)
                     Label [_putintr] (::_putintr:8) _putintr:2
                     Expression-list (::_putintr:8)
                        Unary [*] (::_putintr:8) i:6
                           Additive [+] (::_putintr:8) i:6
                              Variable [@bp] (::_putintr:8) i:6
                              Const [1] (::_putintr:8) i:6
               OperatorIO [__out] (::_putintr:9)
                  Additive [+] (::_putintr:9)
                     Const [48] (::_putintr:9)
                     Unary [*] (::_putintr:9) j:6
                        Additive [+] (::_putintr:9) j:6
                           Variable [@bp] (::_putintr:9) j:6
                           Const [2] (::_putintr:9) j:6
               Keyword-statement [return] (::_putintr:10)
                  Additive [+] (::_putintr:10)
                     Unary [*] (::_putintr:10) i:6
                        Additive [+] (::_putintr:10) i:6
                           Variable [@bp] (::_putintr:10) i:6
                           Const [1] (::_putintr:10) i:6
                     Const [1] (::_putintr:10)
         Keyword-statement [return] (::_putintr:12)
            Const [0] (::_putintr:12)
   Function:4 [_divMod] (::_divMod:1)
      Keyword [int] (::_divMod:1)
      Param-type-list (::_divMod:1)
         Stackvar:-2 [a] (::_divMod:1)
         Stackvar:-3 [b] (::_divMod:1)
         Stackvar:-4 [j] (::_divMod:1)
      Block (::_divMod:2)
         Keyword-statement [if] (::_divMod:3)
            Relational [<] (::_divMod:3)
               Unary [*] (::_divMod:3) a:1
                  Additive [+] (::_divMod:3) a:1
                     Variable [@bp] (::_divMod:3) a:1
                     Const [-2] (::_divMod:3) a:1
               Unary [*] (::_divMod:3) b:1
                  Additive [+] (::_divMod:3) b:1
                     Variable [@bp] (::_divMod:3) b:1
                     Const [-3] (::_divMod:3) b:1
            Block (::_divMod:3)
               Assignment [=] (::_divMod:3)
                  Unary [*] (::_divMod:3)
                     Unary [*] (::_divMod:3) j:1
                        Additive [+] (::_divMod:3) j:1
                           Variable [@bp] (::_divMod:3) j:1
                           Const [-4] (::_divMod:3) j:1
                  Unary [*] (::_divMod:3) a:1
                     Additive [+] (::_divMod:3) a:1
                        Variable [@bp] (::_divMod:3) a:1
                        Const [-2] (::_divMod:3) a:1
               Keyword-statement [return] (::_divMod:3)
                  Const [0] (::_divMod:3)
         Declaration (::_divMod:5)
            Keyword [int] (::_divMod:5)
            Declarator [=] (::_divMod:5)
               Stackvar:1 [b1] (::_divMod:5)
               Unary [*] (::_divMod:5) b:1
                  Additive [+] (::_divMod:5) b:1
                     Variable [@bp] (::_divMod:5) b:1
                     Const [-3] (::_divMod:5) b:1
            Declarator [=] (::_divMod:5)
               Stackvar:2 [i] (::_divMod:5)
               Const [1] (::_divMod:5)
            Declarator [0] (::_divMod:5)
               Stackvar:3 [bp] (::_divMod:5)
            Declarator [0] (::_divMod:5)
               Stackvar:4 [ip] (::_divMod:5)
         Label-statement [next] (::_divMod:7)
            Assignment [=] (::_divMod:8)
               Unary [*] (::_divMod:8) bp:5
                  Additive [+] (::_divMod:8) bp:5
                     Variable [@bp] (::_divMod:8) bp:5
                     Const [3] (::_divMod:8) bp:5
               Unary [*] (::_divMod:8) b1:5
                  Additive [+] (::_divMod:8) b1:5
                     Variable [@bp] (::_divMod:8) b1:5
                     Const [1] (::_divMod:8) b1:5
         Assignment [=] (::_divMod:8)
            Unary [*] (::_divMod:8) ip:5
               Additive [+] (::_divMod:8) ip:5
                  Variable [@bp] (::_divMod:8) ip:5
                  Const [4] (::_divMod:8) ip:5
            Unary [*] (::_divMod:8) i:5
               Additive [+] (::_divMod:8) i:5
                  Variable [@bp] (::_divMod:8) i:5
                  Const [2] (::_divMod:8) i:5
         Assignment [=] (::_divMod:9)
            Unary [*] (::_divMod:9) b1:5
               Additive [+] (::_divMod:9) b1:5
                  Variable [@bp] (::_divMod:9) b1:5
                  Const [1] (::_divMod:9) b1:5
            Additive [+] (::_divMod:9)
               Unary [*] (::_divMod:9) b1:5
                  Additive [+] (::_divMod:9) b1:5
                     Variable [@bp] (::_divMod:9) b1:5
                     Const [1] (::_divMod:9) b1:5
               Unary [*] (::_divMod:9) b1:5
                  Additive [+] (::_divMod:9) b1:5
                     Variable [@bp] (::_divMod:9) b1:5
                     Const [1] (::_divMod:9) b1:5
         Assignment [=] (::_divMod:9)
            Unary [*] (::_divMod:9) i:5
               Additive [+] (::_divMod:9) i:5
                  Variable [@bp] (::_divMod:9) i:5
                  Const [2] (::_divMod:9) i:5
            Additive [+] (::_divMod:9)
               Unary [*] (::_divMod:9) i:5
                  Additive [+] (::_divMod:9) i:5
                     Variable [@bp] (::_divMod:9) i:5
                     Const [2] (::_divMod:9) i:5
               Unary [*] (::_divMod:9) i:5
                  Additive [+] (::_divMod:9) i:5
                     Variable [@bp] (::_divMod:9) i:5
                     Const [2] (::_divMod:9) i:5
         Keyword-statement [if] (::_divMod:11)
            Relational [<] (::_divMod:11)
               Unary [*] (::_divMod:11) a:1
                  Additive [+] (::_divMod:11) a:1
                     Variable [@bp] (::_divMod:11) a:1
                     Const [-2] (::_divMod:11) a:1
               Unary [*] (::_divMod:11) b1:5
                  Additive [+] (::_divMod:11) b1:5
                     Variable [@bp] (::_divMod:11) b1:5
                     Const [1] (::_divMod:11) b1:5
            Keyword-statement [return] (::_divMod:12)
               Additive [+] (::_divMod:12)
                  Unary [*] (::_divMod:12) ip:5
                     Additive [+] (::_divMod:12) ip:5
                        Variable [@bp] (::_divMod:12) ip:5
                        Const [4] (::_divMod:12) ip:5
                  Postfix [(] (::_divMod:12)
                     Label [_divMod] (::_divMod:12) _divMod:1
                     Expression-list (::_divMod:12)
                        Additive [-] (::_divMod:12)
                           Unary [*] (::_divMod:12) a:1
                              Additive [+] (::_divMod:12) a:1
                                 Variable [@bp] (::_divMod:12) a:1
                                 Const [-2] (::_divMod:12) a:1
                           Unary [*] (::_divMod:12) bp:5
                              Additive [+] (::_divMod:12) bp:5
                                 Variable [@bp] (::_divMod:12) bp:5
                                 Const [3] (::_divMod:12) bp:5
                        Unary [*] (::_divMod:12) b:1
                           Additive [+] (::_divMod:12) b:1
                              Variable [@bp] (::_divMod:12) b:1
                              Const [-3] (::_divMod:12) b:1
                        Unary [*] (::_divMod:12) j:1
                           Additive [+] (::_divMod:12) j:1
                              Variable [@bp] (::_divMod:12) j:1
                              Const [-4] (::_divMod:12) j:1
         Keyword-statement [goto] (::_divMod:14)
            Label [next] (::_divMod:14) next:7