Author: smash
Date: Tue Aug 19 15:31:45 2008
New Revision: 30358
Modified:
branches/pdd27mmd/compilers/pirc/src/pirutil.c
branches/pdd27mmd/docs/book/ch08_reference.pod
branches/pdd27mmd/editor/pir-mode.el
branches/pdd27mmd/examples/benchmarks/overload.pir
branches/pdd27mmd/languages/PIR/src/pasm/pasm_instr.pg
branches/pdd27mmd/languages/PIR/src/pasm/pasm_pmc.pg
branches/pdd27mmd/src/ops/ops.num
branches/pdd27mmd/src/ops/pmc.ops
branches/pdd27mmd/t/pmc/multidispatch.t
Log:
[branches/pdd27mmd]: Replace 'mmdvtregister' and 'mmdvtfind' opcodes with
'add_multi' and 'find_multi'
Modified: branches/pdd27mmd/compilers/pirc/src/pirutil.c
==============================================================================
--- branches/pdd27mmd/compilers/pirc/src/pirutil.c (original)
+++ branches/pdd27mmd/compilers/pirc/src/pirutil.c Tue Aug 19 15:31:45 2008
@@ -237,8 +237,8 @@
"n_abs",
"mul",
"mod",
- "mmdvtregister",
- "mmdvtfind",
+ "add_multi",
+ "find_multi",
"lt_str",
"lt_num",
"lt_addr",
Modified: branches/pdd27mmd/docs/book/ch08_reference.pod
==============================================================================
--- branches/pdd27mmd/docs/book/ch08_reference.pod (original)
+++ branches/pdd27mmd/docs/book/ch08_reference.pod Tue Aug 19 15:31:45 2008
@@ -1562,22 +1562,22 @@
I<Arguments: P, P, IC>
-=head2 mmdvtfind
+=head2 find_multi
-X<mmdvtfind opcode (PASM)>
+X<find_multi opcode (PASM)>
- mmdvtfind R<DEST>, R<FUNC>, R<LEFT>, R<RIGHT>
+ find_multi R<DEST>, R<FUNC>, R<LEFT>, R<RIGHT>
Get the subroutine PMC for the multi-method vtable function R<FUNC>
for the two given PMC types.
I<Arguments: P, I, I, I>
-=head2 mmdvtregister
+=head2 add_multi
-X<mmdvtregister opcode (PASM)>
+X<add_multi opcode (PASM)>
- mmdvtregister R<FUNC>, R<LEFT>, R<RIGHT>, R<SUB>
+ add_multi R<FUNC>, R<LEFT>, R<RIGHT>, R<SUB>
Register the subroutine R<SUB> as the multi-method vtable function R<FUNC>
for the two given PMC types.
Modified: branches/pdd27mmd/editor/pir-mode.el
==============================================================================
--- branches/pdd27mmd/editor/pir-mode.el (original)
+++ branches/pdd27mmd/editor/pir-mode.el Tue Aug 19 15:31:45 2008
@@ -186,7 +186,7 @@
"join" "jsr" "jump"
"lcm" "le" "length" "listen" "ln" "load_bytecode" "loadlib" "localtime"
"log10" "log2" "lookback" "lsr" "lt"
- "mmdvtfind" "mmdvtregister" "mod" "mul"
+ "find_multi" "add_multi" "mod" "mul"
"n_infix" "ne" "needs_destroy" "neg" "new" "new_callback" "newclass"
"newclosure" "nors" "not" "null"
"open" "or" "ord"
Modified: branches/pdd27mmd/examples/benchmarks/overload.pir
==============================================================================
--- branches/pdd27mmd/examples/benchmarks/overload.pir (original)
+++ branches/pdd27mmd/examples/benchmarks/overload.pir Tue Aug 19 15:31:45 2008
@@ -5,7 +5,7 @@
.include "mmd.pasm"
.local pmc my_mul
my_mul = global "my_mul"
- mmdvtregister .MMD_MULTIPLY, .Integer, .Integer, my_mul
+ add_multi .MMD_MULTIPLY, .Integer, .Integer, my_mul
.local int i
.local pmc r
.local pmc a
Modified: branches/pdd27mmd/languages/PIR/src/pasm/pasm_instr.pg
==============================================================================
--- branches/pdd27mmd/languages/PIR/src/pasm/pasm_instr.pg (original)
+++ branches/pdd27mmd/languages/PIR/src/pasm/pasm_instr.pg Tue Aug 19
15:31:45 2008
@@ -137,8 +137,8 @@
| n_abs
| mul
| mod
-| mmdvtregister
-| mmdvtfind
+| add_multi
+| find_multi
| lt_str
| lt_num
| lt_addr
Modified: branches/pdd27mmd/languages/PIR/src/pasm/pasm_pmc.pg
==============================================================================
--- branches/pdd27mmd/languages/PIR/src/pasm/pasm_pmc.pg (original)
+++ branches/pdd27mmd/languages/PIR/src/pasm/pasm_pmc.pg Tue Aug 19
15:31:45 2008
@@ -39,8 +39,8 @@
| prophash <arg_hack> #
| freeze <arg_hack> #
| thaw <arg_hack> #
-| mmdvtregister <arg_hack> #
-| mmdvtfind <arg_hack> #
+| add_multi <arg_hack> #
+| find_multi <arg_hack> #
| register <arg_hack> #
| unregister <arg_hack> #
| hash <arg_hack> #
Modified: branches/pdd27mmd/src/ops/ops.num
==============================================================================
--- branches/pdd27mmd/src/ops/ops.num (original)
+++ branches/pdd27mmd/src/ops/ops.num Tue Aug 19 15:31:45 2008
@@ -820,22 +820,22 @@
freeze_s_p 790
thaw_p_s 791
thaw_p_sc 792
-mmdvtregister_i_i_i_p 793
-mmdvtregister_ic_i_i_p 794
-mmdvtregister_i_ic_i_p 795
-mmdvtregister_ic_ic_i_p 796
-mmdvtregister_i_i_ic_p 797
-mmdvtregister_ic_i_ic_p 798
-mmdvtregister_i_ic_ic_p 799
-mmdvtregister_ic_ic_ic_p 800
-mmdvtfind_p_i_i_i 801
-mmdvtfind_p_ic_i_i 802
-mmdvtfind_p_i_ic_i 803
-mmdvtfind_p_ic_ic_i 804
-mmdvtfind_p_i_i_ic 805
-mmdvtfind_p_ic_i_ic 806
-mmdvtfind_p_i_ic_ic 807
-mmdvtfind_p_ic_ic_ic 808
+add_multi_i_i_i_p 793
+add_multi_ic_i_i_p 794
+add_multi_i_ic_i_p 795
+add_multi_ic_ic_i_p 796
+add_multi_i_i_ic_p 797
+add_multi_ic_i_ic_p 798
+add_multi_i_ic_ic_p 799
+add_multi_ic_ic_ic_p 800
+find_multi_p_i_i_i 801
+find_multi_p_ic_i_i 802
+find_multi_p_i_ic_i 803
+find_multi_p_ic_ic_i 804
+find_multi_p_i_i_ic 805
+find_multi_p_ic_i_ic 806
+find_multi_p_i_ic_ic 807
+find_multi_p_ic_ic_ic 808
register_p 809
unregister_p 810
get_mro_p_p 811
Modified: branches/pdd27mmd/src/ops/pmc.ops
==============================================================================
--- branches/pdd27mmd/src/ops/pmc.ops (original)
+++ branches/pdd27mmd/src/ops/pmc.ops Tue Aug 19 15:31:45 2008
@@ -615,24 +615,24 @@
########################################
-=item B<mmdvtregister>(in INT, in INT, in INT, invar PMC)
+=item B<add_multi>(in INT, in INT, in INT, invar PMC)
Register method $4 as the MMD method for vtable entry $1 for classes
$2 and $3.
=cut
-inline op mmdvtregister(in INT, in INT, in INT, invar PMC) {
+inline op add_multi(in INT, in INT, in INT, invar PMC) {
Parrot_mmd_register_sub(interp, $1, $2, $3, $4);
}
-=item B<mmdvtfind>(out PMC, in INT, in INT, in INT)
+=item B<find_multi>(out PMC, in INT, in INT, in INT)
Find the sub that would be called for vtable entry $2 for types $3 and $4.
=cut
-inline op mmdvtfind(out PMC, in INT, in INT, in INT) {
+inline op find_multi(out PMC, in INT, in INT, in INT) {
$1 = Parrot_mmd_vtfind(interp, $2, $3, $4);
}
Modified: branches/pdd27mmd/t/pmc/multidispatch.t
==============================================================================
--- branches/pdd27mmd/t/pmc/multidispatch.t (original)
+++ branches/pdd27mmd/t/pmc/multidispatch.t Tue Aug 19 15:31:45 2008
@@ -37,7 +37,7 @@
.local pmc divide
divide = global "Integer_divide_PerlInt"
- mmdvtregister .MMD_DIVIDE, .Integer, type_perl_int, divide
+ add_multi .MMD_DIVIDE, .Integer, type_perl_int, divide
$P0 = new 'PerlInt'
$P1 = new 'Integer'
@@ -73,7 +73,7 @@
.local pmc add
add = global "add"
- mmdvtregister .MMD_ADD, .Integer, .Integer, add
+ add_multi .MMD_ADD, .Integer, .Integer, add
$P0 = new 'Integer'
$P1 = new 'Integer'
@@ -109,7 +109,7 @@
.local pmc divide
divide = global "Integer_divide_Integer"
- mmdvtregister .MMD_DIVIDE, .Integer, .Integer, divide
+ add_multi .MMD_DIVIDE, .Integer, .Integer, divide
$P0 = new 'Integer'
$P1 = new 'Integer'
@@ -141,7 +141,7 @@
.local pmc comp
comp = global "Float_cmp_Integer"
- mmdvtregister .MMD_CMP, .Float, .Integer, comp
+ add_multi .MMD_CMP, .Float, .Integer, comp
$P1 = new 'Float'
$P2 = new 'Integer'
@@ -163,7 +163,7 @@
-42
OUTPUT
-pir_output_is( <<'CODE', <<'OUTPUT', "mmdvtfind" );
+pir_output_is( <<'CODE', <<'OUTPUT', "find_multi" );
.sub _main
@@ -172,8 +172,8 @@
.local pmc comp
comp = global "Float_cmp_Integer"
- mmdvtregister .MMD_NUMCMP, .Float, .Integer, comp
- $P0 = mmdvtfind .MMD_NUMCMP, .Float, .Integer
+ add_multi .MMD_NUMCMP, .Float, .Integer, comp
+ $P0 = find_multi .MMD_NUMCMP, .Float, .Integer
if_null $P0, nok
print "ok 1\n"
ne_addr $P0, comp, nok
@@ -195,7 +195,7 @@
ok 2
OUTPUT
-pir_output_is( <<'CODE', <<'OUTPUT', "mmdvtfind - invoke it" );
+pir_output_is( <<'CODE', <<'OUTPUT', "find_multi - invoke it" );
.sub _main
@@ -204,8 +204,8 @@
.local pmc comp
comp = global "Float_cmp_Integer"
- mmdvtregister .MMD_NUMCMP, .Float, .Integer, comp
- $P0 = mmdvtfind .MMD_NUMCMP, .Float, .Integer
+ add_multi .MMD_NUMCMP, .Float, .Integer, comp
+ $P0 = find_multi .MMD_NUMCMP, .Float, .Integer
if_null $P0, nok
print "ok 1\n"
ne_addr $P0, comp, nok
@@ -259,7 +259,7 @@
.local pmc divide
load_bytecode "temp.pir"
divide = global "Integer_divide_Integer"
- mmdvtregister .MMD_DIVIDE, .Integer, .Integer, divide
+ add_multi .MMD_DIVIDE, .Integer, .Integer, divide
$P0 = new 'Integer'
$P1 = new 'Integer'
@@ -280,7 +280,7 @@
.include "datatypes.pasm"
.include "mmd.pasm"
get_global P10, "Integer_bxor_Intval"
- mmdvtregister .MMD_BXOR, .Integer, .DATATYPE_INTVAL, P10
+ add_multi .MMD_BXOR, .Integer, .DATATYPE_INTVAL, P10
new P1, 'Integer'
set P1, 3
@@ -307,7 +307,7 @@
.include "datatypes.pasm"
.include "mmd.pasm"
get_global P10, "Integer_bxor_Intval"
- mmdvtregister .MMD_BXOR, .Integer, .DATATYPE_INTVAL, P10
+ add_multi .MMD_BXOR, .Integer, .DATATYPE_INTVAL, P10
new P0, 'Integer'
new P1, 'Integer'
@@ -334,7 +334,7 @@
.include "datatypes.pasm"
.include "mmd.pasm"
get_global P10, "Integer_bxor_Intval"
- mmdvtregister .MMD_BXOR, .Integer, .DATATYPE_INTVAL, P10
+ add_multi .MMD_BXOR, .Integer, .DATATYPE_INTVAL, P10
new P0, 'Integer'
new P1, 'Integer'
@@ -1050,9 +1050,9 @@
.local pmc func
.local int typ
.include "mmd.pasm"
- func = mmdvtfind .MMD_ADD, .Float, .Float
+ func = find_multi .MMD_ADD, .Float, .Float
typ = typeof l
- mmdvtregister .MMD_ADD, typ, typ, func
+ add_multi .MMD_ADD, typ, typ, func
l = 4
r = 38
print l