cvsuser     03/03/15 13:51:22

  Modified:    languages/imcc/t/imcpasm sub.t
  Log:
  Added a few tests
  
  Revision  Changes    Path
  1.2       +57 -1     parrot/languages/imcc/t/imcpasm/sub.t
  
  Index: sub.t
  ===================================================================
  RCS file: /cvs/public/parrot/languages/imcc/t/imcpasm/sub.t,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -w -r1.1 -r1.2
  --- sub.t     10 Dec 2002 08:55:12 -0000      1.1
  +++ sub.t     15 Mar 2003 21:51:22 -0000      1.2
  @@ -1,6 +1,6 @@
   #!perl
   use strict;
  -use TestCompiler tests => 1;
  +use TestCompiler tests => 3;
   use Test::More qw(skip);
   
   ##############################
  @@ -42,3 +42,59 @@
        ret
   OUT
   
  +output_like(<<'CODE', <<'OUT', "non-constant dest bsr, invoke");
  +.sub _main
  +    .local PerlUndef _SV_r23
  +    _SV_r23 = new PerlUndef
  +    $P26 = new Sub
  +    $I15 = addr _sub1
  +    $P26 = $I15
  +    _SV_r23 = clone $P26
  +    invoke _SV_r23
  +    bsr $I15
  +    ret
  +_sub1:
  +    ret
  +.end
  +CODE
  +/^_main:
  + new P0, \d+ # .PerlUndef
  + new P1, \d+ # .Sub
  + set_addr I0, _sub1
  + set P1, I0
  + clone P0, P1
  + invoke P0
  + bsr I0
  + ret
  +_sub1:
  + ret/
  +OUT
  +
  +output_like(<<'CODE', <<'OUT', "nonlocal bsr");
  +.sub _main
  +    .local PerlUndef _SV_r23
  +    _SV_r23 = new PerlUndef
  +    $P26 = new Sub
  +    $I15 = addr _f
  +    $P26 = $I15
  +    _SV_r23 = clone $P26
  +    invoke _SV_r23
  +    bsr $I15
  +    ret
  +.end
  +.sub _f
  +    ret
  +.end
  +CODE
  +/^_main:
  + new P0, \d+ # .PerlUndef
  + new P1, \d+ # .Sub
  + set_addr I0, _f
  + set P1, I0
  + clone P0, P1
  + invoke P0
  + bsr I0
  + ret
  +_f:
  + ret/
  +OUT
  
  
  

Reply via email to