On Sun Apr 13 08:35:08 2008, rgrjr wrote: > > The usages in ncidef2pasm.pl appear to have nothing per se to do with > these ops . . . > > I couldn't even figure out what ncidef2pasm.pl was for, let alone how to > test it. Is this dead code? >
Not quite. This is one of a number of scripts which are invoked -- usually once only -- in lib/Parrot/Docs/*/*.pm -- an area of Parrot into which I have rarely peeked and whose function I don't claim to understand (generating the HTML version of our docs, perhaps? ptc: can you clarify?) $ fnsa lib/Parrot/Docs '*.pm' | xargs grep -n ncidef2pasm lib/Parrot/Docs/Section/Tools.pm:101: $self->new_item( '', 'tools/util/ncidef2pasm.pl' ), But here is a patch which partially implements the objective of this RT. What's missing is a revision of docs/pdds/draft/pdd19_pir.pod. 'saveall' and 'restoreall' are used within a code example in this doc, and I don't know what should go in their places. Still to be addressed is this portion of the OP: "When these are gone, the instructions can be removed from src/ops/stack.ops, and the reg_stack member of struct Parrot_Context can be removed."
Index: docs/pdds/draft/pdd06_pasm.pod =================================================================== --- docs/pdds/draft/pdd06_pasm.pod (revision 26965) +++ docs/pdds/draft/pdd06_pasm.pod (working copy) @@ -507,24 +507,16 @@ Restore register X from the generic stack by popping off the topmost entry. The type of this entry must match the register type. -=item saveall +=item savetop -Save all of the current set of registers onto the appropriate frame stacks. +Save registers 16-31 onto the appropriate frame stacks. Equivalent to performing a separate push for each register type. -=item restoreall +=item restoretop -Restore all of the registers from the appropriate frame stacks. Equivalent to +Restore registers 16-31 from the appropriate frame stacks. Equivalent to performing a separate pop for each register type. -=item savetop - -As L<saveall> but only acts on registers 16-31. - -=item restoretop - -As L<restoreall> but only affects registers 16-31. - =item set_warp string Sets a named marker for the stacks for later use. Index: editor/kate_syntax.pl =================================================================== --- editor/kate_syntax.pl (revision 26965) +++ editor/kate_syntax.pl (working copy) @@ -22,9 +22,10 @@ $parrot =~ s/\/$//; -my @imcc_oplike = qw(.sym .arg prototyped non_prototyped .class - .endclass .param inc dec new defined addr global clone saveall - restoreall); +# saveall and restoreall deleted from @imcc_oplike April 2008. +my @imcc_oplike = qw( .sym .arg prototyped non_prototyped .class + .endclass .param inc dec new defined addr global clone ); + my @imcc_spdirec = qw(.call .result .return .local .const .globalconst end goto if unless call branch jump jsr ret invoke invokecc throw rethrow die_hard .emit .eom .sub .end .begin_call Index: languages/BASIC/compiler/compile.pl =================================================================== --- languages/BASIC/compiler/compile.pl (revision 26965) +++ languages/BASIC/compiler/compile.pl (working copy) @@ -84,8 +84,6 @@ #INIT my ( $edit, @saves ); - #print CODE "\t.sub ${seg}_main\n\t\tsaveall\n"; - # If any "common" declared variables are in scope, set them up. @saves = (); foreach my $var ( keys %{ $code{$seg}->{declarations} } ) { @@ -160,9 +158,10 @@ print CODE ".end\t# outer segment\n"; next; } + # saveall deleted from heredoc below April 2008 + # see http://rt.perl.org/rt3/Ticket/Display.html?id=52838 print CODE<<EOD; .sub ${seg}_debug - saveall .param int debline find_global \$P0, "DEBUGGER" \$I0= \$P0["step"]