summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/ext/B/ramblings/reg.alloc
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/ext/B/ramblings/reg.alloc')
-rw-r--r--contrib/perl5/ext/B/ramblings/reg.alloc32
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/perl5/ext/B/ramblings/reg.alloc b/contrib/perl5/ext/B/ramblings/reg.alloc
new file mode 100644
index 0000000..7fd69f2
--- /dev/null
+++ b/contrib/perl5/ext/B/ramblings/reg.alloc
@@ -0,0 +1,32 @@
+while ($i--) {
+ foo();
+}
+exit
+
+ PP code if i an int register if i an int but not a
+ (i.e. can't be register (i.e. can be
+ implicitly invalidated) implicitly invalidated)
+ nextstate
+ enterloop
+
+
+ loop:
+ gvsv GV (0xe6078) *i validates i validates i
+ postdec invalidates $i invalidates $i
+ and if_false goto out;
+ i valid; $i invalid i valid; $i invalid
+
+ i valid; $i invalid i valid; $i invalid
+ nextstate
+ pushmark
+ gv GV (0xe600c) *foo
+ entersub validates $i; invals i
+
+ unstack
+ goto loop:
+
+ i valid; $i invalid
+ out:
+ leaveloop
+ nextstate
+ exit
OpenPOWER on IntegriCloud