tagged release 0.6.4
[parrot.git] / t / compilers / imcc / imcpasm / sub.t
blob7c28fae021017d80352725c6efe7fa666979f297
1 #!perl
2 # Copyright (C) 2005, The Perl Foundation.
3 # $Id$
5 use strict;
6 use warnings;
7 use lib qw( . lib ../lib ../../lib );
8 use Parrot::Test tests => 2;
10 ##############################
11 pir_2_pasm_like( <<'CODE', <<'OUT', "non-constant dest bsr, invoke" );
12 .sub _main
13     $P26 = new 'Sub'
14     $I15 = addr _sub1
15     $P26 = $I15
16     invokecc $P26
17     ret
18 _sub1:
19     ret
20 .end
21 CODE
22 /^# IMCC does produce b0rken PASM files
23 # see http://guest@rt.perl.org/rt3/Ticket/Display.html\?id=32392
24 _main:
25  new P(\d+), 'Sub'
26  set_addr I(\d+), _sub1
27  set P\1, I\2
28  invokecc P\1
29  ret
30 _sub1:
31  ret/
32 OUT
34 pir_2_pasm_like( <<'CODE', <<'OUT', "nonlocal bsr" );
35 .sub _main
36     $P26 = new 'Sub'
37     $I15 = addr _f
38     $P26 = $I15
39     invokecc $P26
40     ret
41 .end
42 .sub _f
43     ret
44 .end
45 CODE
46 /^# IMCC does produce b0rken PASM files
47 # see http://guest@rt.perl.org/rt3/Ticket/Display.html\?id=32392
48 _main:
49  new P(\d+), 'Sub'
50  set_addr I(\d+), _f
51  set P\1, I\2
52  invokecc P\1
53  ret
54 _f:
55  ret/
56 OUT
58 # Local Variables:
59 #   mode: cperl
60 #   cperl-indent-level: 4
61 #   fill-column: 100
62 # End:
63 # vim: expandtab shiftwidth=4: