cvsuser 03/06/13 17:18:42
Modified: classes compiler.pmc
Log:
Fix the bits that were making the compiler PMC test die
Revision Changes Path
1.8 +8 -9 parrot/classes/compiler.pmc
Index: compiler.pmc
===================================================================
RCS file: /cvs/public/parrot/classes/compiler.pmc,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -w -r1.7 -r1.8
--- compiler.pmc 13 Jun 2003 23:15:34 -0000 1.7
+++ compiler.pmc 14 Jun 2003 00:18:42 -0000 1.8
@@ -1,7 +1,7 @@
/* Compiler.pmc
* Copyright: 2002-2003 Yet Another Society
* CVS Info
- * $Id: compiler.pmc,v 1.7 2003/06/13 23:15:34 dan Exp $
+ * $Id: compiler.pmc,v 1.8 2003/06/14 00:18:42 dan Exp $
* Overview:
* The vtable functions for implementing assembler/compilers
* Data Structure and Algorithms:
@@ -32,24 +32,23 @@
Parrot_push_i(interpreter, &interpreter->ctx.int_reg.registers[16]);
Parrot_push_s(interpreter, &interpreter->ctx.string_reg.registers[0]);
Parrot_push_s(interpreter, &interpreter->ctx.string_reg.registers[16]);
- Parrot_push_n(interpreter, &interpreter->ctx.num_reg.registers[0]);
- Parrot_push_n(interpreter, &interpreter->ctx.num_reg.registers[16]);
Parrot_push_p(interpreter, &interpreter->ctx.pmc_reg.registers[0]);
Parrot_push_p(interpreter, &interpreter->ctx.pmc_reg.registers[16]);
+
interpreter->ctx.string_reg.registers[5] = (String*) code_ptr;
func(INTERP, SELF);
/* return value PMC is in P5 */
stack_push(interpreter, &interpreter->ctx.user_stack,
interpreter->ctx.pmc_reg.registers[5],
STACK_ENTRY_PMC, STACK_CLEANUP_NULL);
- Parrot_pop_i(interpreter, &interpreter->ctx.int_reg.registers[16]);
- Parrot_pop_i(interpreter, &interpreter->ctx.int_reg.registers[0]);
- Parrot_pop_s(interpreter, &interpreter->ctx.string_reg.registers[16]);
- Parrot_pop_s(interpreter, &interpreter->ctx.string_reg.registers[0]);
- Parrot_pop_n(interpreter, &interpreter->ctx.num_reg.registers[16]);
- Parrot_pop_n(interpreter, &interpreter->ctx.num_reg.registers[0]);
+
Parrot_pop_p(interpreter, &interpreter->ctx.pmc_reg.registers[16]);
Parrot_pop_p(interpreter, &interpreter->ctx.pmc_reg.registers[0]);
+ Parrot_pop_s(interpreter, &interpreter->ctx.string_reg.registers[16]);
+ Parrot_pop_s(interpreter, &interpreter->ctx.string_reg.registers[0]);
+ Parrot_pop_i(interpreter, &interpreter->ctx.int_reg.registers[16]);
+ Parrot_pop_i(interpreter, &interpreter->ctx.int_reg.registers[0]);
+
(void)stack_pop(interpreter, &interpreter->ctx.user_stack, &code_seg,
STACK_ENTRY_PMC);
eval_cs = (struct PackFile_ByteCode *) PMC_data(code_seg);