The attached patch munges the tests (well, examples really)
in the following ways:
        a) use set instead of set_i_ic
        b) more comments 
        c) newlines at strategic places

This brings up two problems I don't understand. test.pasm produces the
following crud for me (meaning the I to N stuff hasn't worked):

Quick test loop
Time at start: 1000488350
  Time at end: 1000488353
        Loops: 10000000
     Duration: 3 secs
   No. of ops: 30000000
   No. of ops: 
-8990954754350296022167387644106214652157094802527252804556020215088999927072646435375341811378307171461854551678538697264100821727119019984740237830264020440104489381149510991872.000000
 (float)
     Duration: -2.000000 (float) 
  Ops per sec: -0.000000

and for some reason the assembler can't grok substr in test2:
Error (10): No opcode substr in <WAX:   substr  S2, S1, I3, I4>

I must be tired but I just can't figure out why.

HTH, Leon
--
Leon Brocard.............................http://www.astray.com/
Iterative Software...........http://www.iterative-software.com/

... Mr. Worf, blow the Windows-powered Borg ship out of this Universe!
Index: t/euclid.pasm
===================================================================
RCS file: /home/perlcvs/parrot/t/euclid.pasm,v
retrieving revision 1.2
diff -u -r1.2 euclid.pasm
--- t/euclid.pasm       2001/09/13 14:34:28     1.2
+++ t/euclid.pasm       2001/09/14 17:14:00
@@ -22,12 +22,12 @@
 main:   set    I1, 96
         set    I2, 64
         set    I3, 0
-        set    S1, "Algorithm E (Euclid's algorithm)"
-        print  S1
+        print  "Algorithm E (Euclid's algorithm): "
 e1:     mod    I4, I1, I2
 e2:     eq     I4, I3, done, e3
 e3:     set    I1, I2
         set    I2, I4
         branch e1
 done:   print  I2
+       print  "\n"
         end
Index: t/test.pasm
===================================================================
RCS file: /home/perlcvs/parrot/t/test.pasm,v
retrieving revision 1.1
diff -u -r1.1 test.pasm
--- t/test.pasm 2001/09/10 22:18:43     1.1
+++ t/test.pasm 2001/09/14 17:14:00
@@ -1,24 +1,37 @@
-        time_i I1
-        set_i_ic I2, 0
-        set_i_ic I3, 1
-        set_i_ic I4, 10000000
-REDO:   eq_i_ic I2, I4, DONE, NEXT
-NEXT:   add_i I2, I2, I3
-        branch_ic REDO
-DONE:   time_i I5
-        print_i I1
-        print_i I5
-        print_i I2
-        sub_i I2, I5, I1
-        print_i I2
-        set_i_ic I1, 3
-        mul_i I4, I4, I1
-        iton_n_i N1, I4
-        iton_n_i N2, I2
-        print_i I4
-        print_n N1
-        print_i I2
-        print_n N2
-        div_n N1, N1, N2
-        print_n N1
-        end
+# This example parrot assembly tests how long a Parrot operator takes
+# to dispatch
+
+       print   "Quick test loop\n"
+       time    I1
+       set     I2, 0
+       set     I3, 1
+       set     I4, 10000000
+REDO:  eq      I2, I4, DONE, NEXT
+NEXT:  add     I2, I2, I3
+       branch  REDO
+DONE:  time    I5
+       print   "Time at start: "
+       print   I1
+       print   "\n  Time at end: "
+       print   I5
+       print   "\n     Loops: "
+       print   I2
+       print   "\n     Duration: "
+       sub     I2, I5, I1
+       print   I2
+       print   " secs\n   No. of ops: "
+       # There are 3 ops in the loop above
+       set     I1, 3
+       mul     I4, I4, I1
+       iton    N1, I4
+       iton    N2, I2
+       print   I4
+       print   "\n   No. of ops: "
+       print   N1
+       print   " (float)\n     Duration: "
+       print   N2
+       print   " (float) \n  Ops per sec: "
+       div     N1, N1, N2
+       print   N1
+       print   "\n"
+       end
Index: t/test2.pasm
===================================================================
RCS file: /home/perlcvs/parrot/t/test2.pasm,v
retrieving revision 1.3
diff -u -r1.3 test2.pasm
--- t/test2.pasm        2001/09/13 07:14:25     1.3
+++ t/test2.pasm        2001/09/14 17:14:00
@@ -1,15 +1,20 @@
-        set_i_ic I2, 1
-        set_i_ic I1, 0
-        set_s_sc S1, "Hello World"
-        set_i_ic I3, 0
-        set_i_ic I4, 0
-        length_i_s I5, S1
-WAX:    substr_s_s_i S2, S1, I3, I4
-        print_s S2
-        add_i I4, I4, I2
-        eq_i_ic I4, I5, WANE, WAX
-WANE:   length_i_s I1, S1
-        print_s S1
-        chopn_s_ic S1, 1
-        eq_i_ic I1, I3, DONE, WANE
-DONE:   end
+# This prints a pleasing sideways triangle composed of the phrase
+# "Hello World"
+
+       set     I2, 1
+       set     I1, 0
+       set     S1, "Hello World"
+       set     I3, 0
+       set     I4, 0
+       length  I5, S1
+WAX:   substr  S2, S1, I3, I4
+       print   S2
+       print   "\n"
+       add     I4, I4, I2
+       eq      I4, I5, WANE, WAX
+WANE:  length  I1, S1
+       print   S1
+       print   "\n"
+       chopn   S1, 1
+       eq      I1, I3, DONE, WANE
+DONE:  end
Index: t/test3.pasm
===================================================================
RCS file: /home/perlcvs/parrot/t/test3.pasm,v
retrieving revision 1.2
diff -u -r1.2 test3.pasm
--- t/test3.pasm        2001/09/14 09:08:07     1.2
+++ t/test3.pasm        2001/09/14 17:14:00
@@ -1,198 +1,280 @@
-       set_i_ic I1, 0
-       print_i I1
+# This tests that the register ops are working
+
+       set     I1, 0
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 1
-       print_i I1
+       set     I1, 1
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 2
-       print_i I1
+       set     I1, 2
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 3
-       print_i I1
+       set     I1, 3
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 4
-       print_i I1
+       set     I1, 4
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 5
-       print_i I1
+       set     I1, 5
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 6
-       print_i I1
+       set     I1, 6
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 7
-       print_i I1
+       set     I1, 7
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 8
-       print_i I1
+       set     I1, 8
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 9
-       print_i I1
+       set     I1, 9
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 0
-       print_i I1
+       set     I1, 0
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 1
-       print_i I1
+       set     I1, 1
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 2
-       print_i I1
+       set     I1, 2
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 3
-       print_i I1
+       set     I1, 3
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 4
-       print_i I1
+       set     I1, 4
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 5
-       print_i I1
+       set     I1, 5
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 6
-       print_i I1
+       set     I1, 6
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 7
-       print_i I1
+       set     I1, 7
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 8
-       print_i I1
+       set     I1, 8
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 9
-       print_i I1
-       print_i I1
+       set     I1, 9
+       print   I1
+       print   "\n"
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
-       set_i_ic I1, 0
-       print_i I1
+       print   I1
+       print   "\n"
+       set     I1, 0
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 1
-       print_i I1
+       set     I1, 1
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 2
-       print_i I1
+       set     I1, 2
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 3
-       print_i I1
+       set     I1, 3
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 4
-       print_i I1
+       set     I1, 4
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 5
-       print_i I1
+       set     I1, 5
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 6
-       print_i I1
+       set     I1, 6
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 7
-       print_i I1
+       set     I1, 7
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 8
-       print_i I1
+       set     I1, 8
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 9
-       print_i I1
+       set     I1, 9
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 0
-       print_i I1
+       set     I1, 0
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 1
-       print_i I1
+       set     I1, 1
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 2
-       print_i I1
+       set     I1, 2
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 3
-       print_i I1
+       set     I1, 3
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 4
-       print_i I1
+       set     I1, 4
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 5
-       print_i I1
+       set     I1, 5
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 6
-       print_i I1
+       set     I1, 6
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 7
-       print_i I1
+       set     I1, 7
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 8
-       print_i I1
+       set     I1, 8
+       print   I1
+       print   "\n"
        push_i
-       set_i_ic I1, 9
-       print_i I1
-       print_i I1
+       set     I1, 9
+       print   I1
+       print   "\n"
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
+       print   I1
+       print   "\n"
        pop_i
-       print_i I1
-    end
+       print   I1
+       print   "\n"
+       end
 

Reply via email to