1# Copyright (C) 2001-2006, Parrot Foundation. 2 3=head1 NAME 4 5examples/benchmarks/addit.pasm - Variable Argument Subroutines 6 7=head1 SYNOPSIS 8 9 % time ./parrot examples/benchmarks/addit.pasm 10 11=head1 DESCRIPTION 12 13Joe Wilson's original PASM version of his C<varargs> subroutines 14benchmark. It calls an "add it" function 50000 times in a loop and 15prints the result (21001097.970000). 16 17=cut 18 19.pcc_sub :main _main: 20 new P10, 'ResizableIntegerArray' 21 new P5, 'ResizablePMCArray' 22 push P5, 1000 23 push P5, 7.100 24 push P5, 87 25 push P5, "3.87" 26 push P5, "21000000" 27 set I9, 50000 28AGAIN: 29 dec I9 30 lt I9, 0, FIN 31 local_branch P10, _varargs_adder 32 branch AGAIN 33FIN: 34 print N5 35 print "\n" 36 end 37 38_varargs_adder: 39 new P2, 'Float' 40 set I1, P5 41LOOP: 42 dec I1 43 lt I1, 0, DONE 44 set P1, P5[I1] 45 add P2, P1 46 branch LOOP 47DONE: 48 set N5, P2 49 local_return P10 50 51=head1 SEE ALSO 52 53F<examples/benchmarks/addit.pl>, F<examples/benchmarks/addit.pir>, 54F<examples/benchmarks/addit2.pir>. 55 56=cut 57 58# Local Variables: 59# mode: pir 60# fill-column: 100 61# End: 62# vim: expandtab shiftwidth=4 ft=pir: 63