[svn:parrot] r40713 - in branches/context_pmc3/src: . jit/i386
bacek at svn.parrot.org
bacek at svn.parrot.org
Sat Aug 22 07:58:01 UTC 2009
Author: bacek
Date: Sat Aug 22 07:58:00 2009
New Revision: 40713
URL: https://trac.parrot.org/parrot/changeset/40713
Log:
Fix using contexts in jit definition.
Modified:
branches/context_pmc3/src/jit/i386/jit_defs.c
branches/context_pmc3/src/jit_defs.c
Modified: branches/context_pmc3/src/jit/i386/jit_defs.c
==============================================================================
--- branches/context_pmc3/src/jit/i386/jit_defs.c Sat Aug 22 07:45:49 2009 (r40712)
+++ branches/context_pmc3/src/jit/i386/jit_defs.c Sat Aug 22 07:58:00 2009 (r40713)
@@ -871,8 +871,9 @@
}
#endif
/* get base pointer */
- emitm_movl_m_r(interp, jit_info->native_ptr, emit_EBX, emit_EBX, 0, 1,
- offsetof(Interp, ctx.bp));
+ // XXX Broken!
+ //emitm_movl_m_r(interp, jit_info->native_ptr, emit_EBX, emit_EBX, 0, 1,
+ // offsetof(Interp, ctx.bp));
/* This jumps to the address in op_map[EDX + sizeof (void *) * INDEX] */
emitm_jumpm(jit_info->native_ptr, emit_EDX, emit_EAX,
@@ -1231,7 +1232,7 @@
PMC *sig_pmc;
INTVAL *sig_bits, i, n;
- sig_pmc = CONTEXT(interp)->constants[CUR_OPCODE[1]]->u.key;
+ sig_pmc = Parrot_ctx_get_pmc_constant(interp, CONTEXT(interp), CUR_OPCODE[1]);
GETATTR_FixedIntegerArray_int_array(interp, sig_pmc, sig_bits);
n = VTABLE_elements(interp, sig_pmc);
jit_info->n_args = n;
@@ -1267,7 +1268,7 @@
int i, used_i, save_i;
const jit_arch_regs *reg_info;
- used_i = CONTEXT(interp)->n_regs_used[REGNO_INT];
+ used_i = CURRENT_CONTEXT_FIELD(n_regs_used[REGNO_INT]);
reg_info = &jit_info->arch_info->regs[jit_info->code_type];
save_i = reg_info->n_preserved_I;
for (i = save_i; i < used_i; ++i) {
@@ -1283,7 +1284,7 @@
int i, used_i, save_i;
const jit_arch_regs *reg_info;
- used_i = CONTEXT(interp)->n_regs_used[REGNO_INT];
+ used_i = CURRENT_CONTEXT_FIELD(n_regs_used[REGNO_INT]);
reg_info = &jit_info->arch_info->regs[jit_info->code_type];
save_i = reg_info->n_preserved_I;
/* note - reversed order of jit_save_regs */
@@ -1307,8 +1308,8 @@
int i, used_i, used_n;
const jit_arch_regs *reg_info;
- used_i = CONTEXT(interp)->n_regs_used[REGNO_INT];
- used_n = CONTEXT(interp)->n_regs_used[REGNO_NUM];
+ used_i = CURRENT_CONTEXT_FIELD(n_regs_used[REGNO_INT]);
+ used_n = CURRENT_CONTEXT_FIELD(n_regs_used[REGNO_NUM]);
jit_emit_sub_ri_i(interp, jit_info->native_ptr, emit_ESP,
(used_i * sizeof (INTVAL) + used_n * sizeof (FLOATVAL)));
reg_info = &jit_info->arch_info->regs[jit_info->code_type];
@@ -1338,8 +1339,8 @@
int i, used_i, used_n;
const jit_arch_regs *reg_info;
- used_i = CONTEXT(interp)->n_regs_used[REGNO_INT];
- used_n = CONTEXT(interp)->n_regs_used[REGNO_NUM];
+ used_i = CURRENT_CONTEXT_FIELD(n_regs_used[REGNO_INT]);
+ used_n = CURRENT_CONTEXT_FIELD(n_regs_used[REGNO_NUM]);
reg_info = &jit_info->arch_info->regs[jit_info->code_type];
for (i = 0; i < used_i; ++i) {
@@ -1368,7 +1369,7 @@
PMC *sig_pmc;
INTVAL *sig_bits, sig;
- sig_pmc = CONTEXT(interp)->constants[CUR_OPCODE[1]]->u.key;
+ sig_pmc = Parrot_ctx_get_pmc_constant(interp, CONTEXT(interp), CUR_OPCODE[1]);
if (!VTABLE_elements(interp, sig_pmc))
return;
GETATTR_FixedIntegerArray_int_array(interp, sig_pmc, sig_bits);
@@ -1442,7 +1443,7 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"set_args_jit - can't do that yet ");
- constants = CONTEXT(interp)->constants;
+ constants = CURRENT_CONTEXT_FIELD(constants);
sig_args = constants[CUR_OPCODE[1]]->u.key;
if (!VTABLE_elements(interp, sig_args))
@@ -1747,8 +1748,8 @@
L1 = NATIVECODE;
emitm_calll(NATIVECODE, 0);
/* check type of return value */
- constants = CONTEXT(interp)->constants;
- result = CONTEXT(interp)->current_results;
+ constants = CURRENT_CONTEXT_FIELD(constants);
+ result = CURRENT_CONTEXT_FIELD(current_results);
sig_result = constants[result[1]]->u.key;
if (!VTABLE_elements(interp, sig_result))
goto no_result;
Modified: branches/context_pmc3/src/jit_defs.c
==============================================================================
--- branches/context_pmc3/src/jit_defs.c Sat Aug 22 07:45:49 2009 (r40712)
+++ branches/context_pmc3/src/jit_defs.c Sat Aug 22 07:58:00 2009 (r40713)
@@ -871,7 +871,7 @@
}
#endif
/* get base pointer */
- // XXX Broken.
+ // XXX Broken!
//emitm_movl_m_r(interp, jit_info->native_ptr, emit_EBX, emit_EBX, 0, 1,
// offsetof(Interp, ctx.bp));
More information about the parrot-commits
mailing list