-sub process_asm_block_powerpc {
- local($str) = @_;
-
- # strip the marker
- $str =~ s/___stg_split_marker.*\n//;
- $str =~ s/___stg_split_marker.*\n//; # yes, twice.
-
- # remove/record any literal constants defined here
- while ( $str =~ /^(.csect .data[RW]\n\s+\.align.*\n(LC\.\.\d+):\n(\s\.byte .*\n)+)/ ) {
- local($label) = $2;
- local($body) = $1;
-
- &tidy_up_and_die(1,"Local constant label $label already defined!\n")
- if $LocalConstant{$label};
-
- $LocalConstant{$label} = $body;
-
- $str =~ s/^.csect .data[RW]\n\s+\.align.*\nLC\.\.\d+:\n(\s\.byte .*\n)+//;
- }
-
- # inject definitions for any local constants now used herein
- foreach $k (keys %LocalConstant) {
- if ( $str =~ /\b$k(\b|\[)/ ) {
- $str = $LocalConstant{$k} . $str;
- }
- }
-
- print STDERR "### STRIPPED BLOCK (powerpc/rs6000):\n$str" if $Dump_asm_splitting_info;
-
- $str = ".toc\n" . $str;
-
- $str;
-}
-\end{code}
-
-\begin{code}