cvsuser 04/03/20 01:15:39
Modified: imcc parser_util.c reg_alloc.c
src packfile.c
Log:
* treat a plain invoke as call
* print correct funtion name
* trace into @LOAD bytecode too
Revision Changes Path
1.62 +4 -0 parrot/imcc/parser_util.c
Index: parser_util.c
===================================================================
RCS file: /cvs/public/parrot/imcc/parser_util.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -w -r1.61 -r1.62
--- parser_util.c 15 Mar 2004 13:16:08 -0000 1.61
+++ parser_util.c 20 Mar 2004 09:15:35 -0000 1.62
@@ -361,6 +361,10 @@
strlen(r1->name) - 2);
Parrot_load_lib(interpreter, lib, NULL);
}
+ else if (!strcmp(name, "invoke")) {
+ if (cur_unit->type == IMC_PCCSUB)
+ cur_unit->instructions->r[1]->pcc_sub->calls_a_sub = 1;
+ }
/* set up branch flags */
if (op_info->jump) {
1.8 +1 -0 parrot/imcc/reg_alloc.c
Index: reg_alloc.c
===================================================================
RCS file: /cvs/public/parrot/imcc/reg_alloc.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -w -r1.7 -r1.8
--- reg_alloc.c 14 Mar 2004 12:18:25 -0000 1.7
+++ reg_alloc.c 20 Mar 2004 09:15:35 -0000 1.8
@@ -87,6 +87,7 @@
}
#endif
+ function = unit->instructions->r[0]->name;
debug(interpreter, DEBUG_IMC, "\n------------------------\n");
debug(interpreter, DEBUG_IMC, "processing sub %s\n", function);
debug(interpreter, DEBUG_IMC, "------------------------\n\n");
1.156 +2 -1 parrot/src/packfile.c
Index: packfile.c
===================================================================
RCS file: /cvs/public/parrot/src/packfile.c,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -w -r1.155 -r1.156
--- packfile.c 17 Mar 2004 08:54:41 -0000 1.155
+++ packfile.c 20 Mar 2004 09:15:39 -0000 1.156
@@ -2,7 +2,7 @@
Copyright (C) 2001-2002 Gregor N. Purdy. All rights reserved.
This program is free software. It is subject to the same license as
Parrot itself.
-$Id: packfile.c,v 1.155 2004/03/17 08:54:41 leo Exp $
+$Id: packfile.c,v 1.156 2004/03/20 09:15:39 leo Exp $
=head1 NAME
@@ -249,6 +249,7 @@
*/
if (interpreter->run_core != PARROT_SWITCH_CORE &&
interpreter->run_core != PARROT_CGOTO_CORE &&
+ interpreter->run_core != PARROT_SLOW_CORE &&
interpreter->run_core != PARROT_FAST_CORE)
interpreter->run_core = PARROT_FAST_CORE;
Parrot_runops_fromc_save(interpreter, sub_pmc);