Ticket #470: kill_branch_cs.patch

File kill_branch_cs.patch, 3.0 KB (added by whiteknight, 12 years ago)

patch to remove branch_cs opcode

  • DEPRECATED.pod

     
    9696for Sub, Exception, and related PMC types will instead be handled by 
    9797get_label and set_label. 
    9898 
    99 =item C<branch_cs> [eligible in 1.5] 
    100  
    101 L<https://trac.parrot.org/parrot/ticket/470> 
    102  
    10399=back 
    104100 
    105101=head1 Bytecode 
  • src/ops/core.ops

     
    204204    goto OFFSET($1); 
    205205} 
    206206 
    207  
    208 =item B<branch_cs>(in STR) 
    209  
    210 Intersegment branch to location in fixup table named $1. 
    211  
    212 =cut 
    213  
    214 inline op branch_cs(in STR) :base_loop :check_event :flow { 
    215     PackFile_FixupEntry * fe; 
    216     { 
    217         char * const label = Parrot_str_to_cstring(interp, $1); 
    218         fe = PackFile_find_fixup_entry(interp, enum_fixup_label, label); 
    219         Parrot_str_free_cstring(label); 
    220     } 
    221  
    222     if (!fe) { 
    223         opcode_t * handler= Parrot_ex_throw_from_op_args(interp, NULL, 
    224             EXCEPTION_INVALID_OPERATION, 
    225             "branch_cs: fixup for '%Ss' not found", $1); 
    226         goto ADDRESS(handler); 
    227     } 
    228     else { 
    229         interp->resume_offset = fe->offset; 
    230         Parrot_switch_to_cs(interp, fe->seg, 1); 
    231         mem_sys_free(fe); 
    232     } 
    233     interp->resume_flag = 2; 
    234     goto ADDRESS(0); 
    235 } 
    236  
    237207######################################## 
    238208 
    239209=item B<local_branch>(invar PMC, in LABEL) 
  • docs/book/draft/ch10_opcode_reference.pod

     
    215215 
    216216I<Arguments: I> 
    217217 
    218 =head3 branch_cs 
    219  
    220 X<branch_cs opcode (PASM)> 
    221  
    222   branch_cs R<FIXUP_ENTRY> 
    223  
    224 Intersegment branch to the location of the given fixup table entry. 
    225  
    226 I<Arguments: S> 
    227  
    228218=head3 bxor 
    229219 
    230220X<bxor opcode (PASM)> 
  • tools/dev/parrot-fuzzer

     
    419419class OpfuncGenerator: 
    420420    opfunc_list = [] 
    421421    opfunc_blacklist = [ 
    422             'branch_cs', # TT# 470 - known to segfault 
    423422            'check_events', #only for testing 
    424423            'check_events__', #not for direct use 
    425424            'clears', #clearing all [SPIN] registers isn't useful 
  • lib/Parrot/OpsFile.pm

     
    546546            $restart = 1; 
    547547            $next    = 1; 
    548548        } 
    549         elsif ( $short_name eq 'branch_cs' || $short_name eq 'returncc' ) { 
    550             $restart = 1;    # dest may be NULL to leave run-loop 
    551         } 
    552549        elsif ( $body =~ s/\brestart\s+ADDRESS\((.*?)\)/{{=$1}}/mg ) { 
    553550            $next    = 0; 
    554551            $restart = 1;