Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / perl5 / ext / B / ramblings / reg.alloc
1 while ($i--) {
2     foo();
3 }
4 exit
5
6     PP code                     if i an int register    if i an int but not a
7                                 (i.e. can't be          register (i.e. can be
8                                 implicitly invalidated) implicitly invalidated)
9     nextstate
10     enterloop
11
12                                                         
13   loop:
14     gvsv  GV (0xe6078) *i       validates i             validates i
15     postdec                     invalidates $i          invalidates $i
16     and if_false goto out;
17                                 i valid; $i invalid     i valid; $i invalid
18
19                                 i valid; $i invalid     i valid; $i invalid
20     nextstate
21     pushmark
22     gv  GV (0xe600c) *foo
23     entersub                                            validates $i; invals i
24
25     unstack
26     goto loop:
27
28                                 i valid; $i invalid
29   out:
30     leaveloop
31     nextstate
32     exit