… | |
… | |
509 | } elsif (my $loop = $insn->{loop}) { |
509 | } elsif (my $loop = $insn->{loop}) { |
510 | # less common case: maybe break to some outer loop |
510 | # less common case: maybe break to some outer loop |
511 | $source .= " return nextop;\n"; |
511 | $source .= " return nextop;\n"; |
512 | # todo: walk stack up |
512 | # todo: walk stack up |
513 | } else { |
513 | } else { |
|
|
514 | # fuck yourself for writing such hacks |
514 | $source .= " return nextop;\n"; |
515 | $source .= " return nextop;\n"; |
515 | } |
516 | } |
516 | } |
517 | } |
517 | |
518 | |
518 | sub op_next { |
519 | sub op_next { |
… | |
… | |
521 | |
522 | |
522 | sub op_last { |
523 | sub op_last { |
523 | out_break_op 1; |
524 | out_break_op 1; |
524 | } |
525 | } |
525 | |
526 | |
|
|
527 | # TODO: does not seem to work |
526 | sub xop_redo { |
528 | #sub op_redo { |
527 | out_break_op 2; |
529 | # out_break_op 2; |
528 | } |
530 | #} |
529 | |
531 | |
530 | sub cv2c { |
532 | sub cv2c { |
531 | my ($cv) = @_; |
533 | my ($cv) = @_; |
532 | |
534 | |
533 | local @ops; |
535 | local @ops; |