cvsuser 04/07/16 07:35:47
Modified: jit/i386 jit_emit.h
src exec.c interpreter.c
Log:
Pie-thon 72 - The return of JIT CGP
Revision Changes Path
1.118 +7 -5 parrot/jit/i386/jit_emit.h
Index: jit_emit.h
===================================================================
RCS file: /cvs/public/parrot/jit/i386/jit_emit.h,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -w -r1.117 -r1.118
--- jit_emit.h 8 Jul 2004 16:11:36 -0000 1.117
+++ jit_emit.h 16 Jul 2004 14:35:43 -0000 1.118
@@ -3,7 +3,7 @@
*
* i386
*
- * $Id: jit_emit.h,v 1.117 2004/07/08 16:11:36 leo Exp $
+ * $Id: jit_emit.h,v 1.118 2004/07/16 14:35:43 leo Exp $
*/
#if !defined(PARROT_I386_JIT_EMIT_H_GUARD)
@@ -11,6 +11,8 @@
#include <assert.h>
+#define USE_CGP
+
#if defined HAVE_COMPUTED_GOTO && defined __GNUC__ && defined USE_CGP
# define JIT_CGP
#endif
@@ -2668,7 +2670,7 @@
/* when cur_opcode == 1, cgp_core jumps back here
* when EAX == 0, the official return from HALT was called */
jit_emit_test_r_i(jit_info->native_ptr, emit_EAX);
- emitm_jxs(jit_info->native_ptr, emitm_jnz, 7);
+ emitm_jxs(jit_info->native_ptr, emitm_jnz, 5);
emitm_popl_r(jit_info->native_ptr, emit_EBX);
jit_emit_stack_frame_leave(jit_info->native_ptr);
emitm_ret(jit_info->native_ptr);
@@ -2712,7 +2714,7 @@
(INTVAL)cur_section->op_count >= 2 + last_is_branch) {
int saved = 0;
offset = (jit_info->cur_op - interpreter->code->byte_code) +
- interpreter->code->cur_cs->prederef_code;
+ interpreter->code->cur_cs->prederef.code;
jit_emit_mov_ri_i(jit_info->native_ptr, emit_ESI, offset);
emitm_callm(jit_info->native_ptr, emit_ESI, 0, 0, 0);
@@ -2721,7 +2723,7 @@
*/
if (last_is_branch) {
offset = (cur_section->end - interpreter->code->byte_code) +
- interpreter->code->cur_cs->prederef_code;
+ interpreter->code->cur_cs->prederef.code;
cur_section->done = -1;
/* ins to skip */
cur_section->ins_count = cur_section->op_count - 1;
@@ -2732,7 +2734,7 @@
* when the branch is non JIT, we are in the above case
*/
offset = (cur_section->next->begin - interpreter->code->byte_code)
- + interpreter->code->cur_cs->prederef_code;
+ + interpreter->code->cur_cs->prederef.code;
cur_section->done = 1;
}
*offset = ((op_func_t*)interpreter->op_lib->op_func_table)[2];
1.21 +3 -3 parrot/src/exec.c
Index: exec.c
===================================================================
RCS file: /cvs/public/parrot/src/exec.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -w -r1.20 -r1.21
--- exec.c 23 Apr 2004 09:21:12 -0000 1.20
+++ exec.c 16 Jul 2004 14:35:47 -0000 1.21
@@ -1,6 +1,6 @@
/*
Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
-$Id: exec.c,v 1.20 2004/04/23 09:21:12 jrieks Exp $
+$Id: exec.c,v 1.21 2004/07/16 14:35:47 leo Exp $
=head1 NAME
@@ -91,12 +91,12 @@
/* prederef_code */
j = (int)cgp_core;
j = (int)((op_func_t*)interpreter->op_lib->op_func_table)[2] - j;
- k = (int *)interpreter->prederef_code;
+ k = (int *)interpreter->code->cur_cs->prederef.code;
for (i = 0; i < (int)interpreter->code->cur_cs->base.size; i++) {
if (k[i] != j)
k[i] = 0;
}
- add_data_member(obj, interpreter->prederef_code,
+ add_data_member(obj, interpreter->code->cur_cs->prederef.code,
interpreter->code->cur_cs->base.size * sizeof(void *));
#endif /* JIT_CGP */
/* bytecode_offset */
1.312 +2 -1 parrot/src/interpreter.c
Index: interpreter.c
===================================================================
RCS file: /cvs/public/parrot/src/interpreter.c,v
retrieving revision 1.311
retrieving revision 1.312
diff -u -w -r1.311 -r1.312
--- interpreter.c 5 May 2004 13:10:35 -0000 1.311
+++ interpreter.c 16 Jul 2004 14:35:47 -0000 1.312
@@ -1,6 +1,6 @@
/*
Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
-$Id: interpreter.c,v 1.311 2004/05/05 13:10:35 leo Exp $
+$Id: interpreter.c,v 1.312 2004/07/16 14:35:47 leo Exp $
=head1 NAME
@@ -50,6 +50,7 @@
#include "parrot/method_util.h"
#include "parrot/dynext.h"
+#define USE_CGP
static void setup_event_func_ptrs(Parrot_Interp interpreter);