Ticket #470: kill_branch_cs.patch
File kill_branch_cs.patch, 3.0 KB (added by whiteknight, 12 years ago) |
---|
-
DEPRECATED.pod
96 96 for Sub, Exception, and related PMC types will instead be handled by 97 97 get_label and set_label. 98 98 99 =item C<branch_cs> [eligible in 1.5]100 101 L<https://trac.parrot.org/parrot/ticket/470>102 103 99 =back 104 100 105 101 =head1 Bytecode -
src/ops/core.ops
204 204 goto OFFSET($1); 205 205 } 206 206 207 208 =item B<branch_cs>(in STR)209 210 Intersegment branch to location in fixup table named $1.211 212 =cut213 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 237 207 ######################################## 238 208 239 209 =item B<local_branch>(invar PMC, in LABEL) -
docs/book/draft/ch10_opcode_reference.pod
215 215 216 216 I<Arguments: I> 217 217 218 =head3 branch_cs219 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 228 218 =head3 bxor 229 219 230 220 X<bxor opcode (PASM)> -
tools/dev/parrot-fuzzer
419 419 class OpfuncGenerator: 420 420 opfunc_list = [] 421 421 opfunc_blacklist = [ 422 'branch_cs', # TT# 470 - known to segfault423 422 'check_events', #only for testing 424 423 'check_events__', #not for direct use 425 424 'clears', #clearing all [SPIN] registers isn't useful -
lib/Parrot/OpsFile.pm
546 546 $restart = 1; 547 547 $next = 1; 548 548 } 549 elsif ( $short_name eq 'branch_cs' || $short_name eq 'returncc' ) {550 $restart = 1; # dest may be NULL to leave run-loop551 }552 549 elsif ( $body =~ s/\brestart\s+ADDRESS\((.*?)\)/{{=$1}}/mg ) { 553 550 $next = 0; 554 551 $restart = 1;