+
+ } elsif ( $c =~ s/^\taddis r9,r31,ha16\(L_${symb}_fast\d*\$non_lazy_ptr-L\d+\$pb\)\n\tlwz r29,lo16\(L_${symb}_fast\d*\$non_lazy_ptr-L\d+\$pb\)\(r9\)\nL(\d+):\n\tmtctr r29\n\tbctr$// ) {
+ # for Position-Independent Code, GCC 3:
+ # addis r9,r31,ha16(L_XXXX_fast3$non_lazy_ptr-Lxxx$pb)
+ # lwz r29,lo16(L_XXXX_fast3$non_lazy_ptr-Lxxx$pb)(r9)
+ # Lyyy:
+ # mtctr r29
+ # bctr
+ $label = $1;
+ $c =~ s/^\tb L${label}\n/\tmtctr r29\n\tbctr\n/g;
+ } elsif ( $c =~ s/^\tlis r9,ha16\(L_${symb}_fast\d*\$non_lazy_ptr\)\n\tlwz r31,lo16\(L_${symb}_fast\d*\$non_lazy_ptr\)\(r9\)\nL(\d+):\n\tmtctr r31\n\tbctr$// ) {
+ # for -mdynamic-no-pic Code, GCC 3:
+ # lis r9,ha16(L_XXXX_fast3$non_lazy_ptr)
+ # lwz r31,lo16(L_XXXX_fast3$non_lazy_ptr-Lxxx$pb)(r9)
+ # Lyyy:
+ # mtctr r31
+ # bctr
+ $label = $1;
+ $c =~ s/^\tb L${label}\n/\tmtctr r31\n\tbctr\n/g;
+ } else {
+
+ print STDERR "slow-fast dropthrough not mangled\n";
+ print STDERR $c;
+ print STDERR "\n\n";
+ }