[svn:parrot] r40898 - in branches/context_pmc3/src: . call jit/i386 runcore
bacek at svn.parrot.org
bacek at svn.parrot.org
Mon Aug 31 22:49:23 UTC 2009
Author: bacek
Date: Mon Aug 31 22:49:22 2009
New Revision: 40898
URL: https://trac.parrot.org/parrot/changeset/40898
Log:
Use more accessor functions instead of CONTEXT_FIELD macro
Modified:
branches/context_pmc3/src/call/pcc.c
branches/context_pmc3/src/debug.c
branches/context_pmc3/src/jit.c
branches/context_pmc3/src/jit/i386/jit_defs.c
branches/context_pmc3/src/packfile.c
branches/context_pmc3/src/runcore/main.c
Modified: branches/context_pmc3/src/call/pcc.c
==============================================================================
--- branches/context_pmc3/src/call/pcc.c Mon Aug 31 22:49:09 2009 (r40897)
+++ branches/context_pmc3/src/call/pcc.c Mon Aug 31 22:49:22 2009 (r40898)
@@ -339,16 +339,6 @@
/* Make sure we don't conflict with any other MAX() macros defined elsewhere */
#define PARROT_MAX(a, b) (((a)) > (b) ? (a) : (b))
-#define SAVE_OFF_REGS(orig, next, save) \
- CONTEXT_FIELD(interp, (save), bp) = CONTEXT_FIELD(interp, (orig), bp);\
- CONTEXT_FIELD(interp, (save), bp_ps) = CONTEXT_FIELD(interp, (orig), bp_ps);\
- CONTEXT_FIELD(interp, (orig), bp) = CONTEXT_FIELD(interp, (next), bp);\
- CONTEXT_FIELD(interp, (orig), bp_ps) = CONTEXT_FIELD(interp, (next), bp_ps);
-
-#define RESTORE_REGS(orig, save) \
- CONTEXT_FIELD(interp, (orig), bp) = CONTEXT_FIELD(interp, (save), bp);\
- CONTEXT_FIELD(interp, (orig), bp_ps) = CONTEXT_FIELD(interp, (save), bp_ps);
-
/*
=item C<PMC* Parrot_pcc_build_sig_object_from_varargs(PARROT_INTERP, PMC* obj,
@@ -564,7 +554,7 @@
ASSERT_ARGS(Parrot_init_arg_indexes_and_sig_pmc)
if (!sig_pmc && indexes) {
++indexes;
- sig_pmc = CONTEXT_FIELD(interp, ctx, constants[*indexes])->u.key;
+ sig_pmc = Parrot_pcc_get_pmc_constant(interp, ctx, *indexes);
ASSERT_SIG_PMC(sig_pmc);
++indexes;
}
@@ -614,7 +604,7 @@
if (pc) {
++pc;
- sig_pmc = CONTEXT_FIELD(interp, ctx, constants[*pc])->u.key;
+ sig_pmc = Parrot_pcc_get_pmc_constant(interp, ctx, *pc);
ASSERT_SIG_PMC(sig_pmc);
++pc;
}
Modified: branches/context_pmc3/src/debug.c
==============================================================================
--- branches/context_pmc3/src/debug.c Mon Aug 31 22:49:09 2009 (r40897)
+++ branches/context_pmc3/src/debug.c Mon Aug 31 22:49:22 2009 (r40898)
@@ -2219,7 +2219,7 @@
if (condition->type & PDB_cond_int) {
INTVAL i, j;
- if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_INT]))
+ if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_INT))
return 0;
i = CTX_REG_INT(ctx, condition->reg);
@@ -2241,7 +2241,7 @@
else if (condition->type & PDB_cond_num) {
FLOATVAL k, l;
- if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_NUM]))
+ if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_NUM))
return 0;
k = CTX_REG_NUM(ctx, condition->reg);
@@ -2263,7 +2263,7 @@
else if (condition->type & PDB_cond_str) {
STRING *m, *n;
- if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_STR]))
+ if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_STR))
return 0;
m = CTX_REG_STR(ctx, condition->reg);
@@ -2294,7 +2294,7 @@
else if (condition->type & PDB_cond_pmc) {
PMC *m;
- if (condition->reg >= CONTEXT_FIELD(interp, ctx, n_regs_used[REGNO_PMC]))
+ if (condition->reg >= Parrot_pcc_get_regs_used(interp, ctx, REGNO_PMC))
return 0;
m = CTX_REG_PMC(ctx, condition->reg);
@@ -3634,7 +3634,7 @@
ASSERT_ARGS(GDB_print_reg)
char * string;
- if (n >= 0 && n < CURRENT_CONTEXT_FIELD(interp, n_regs_used[t])) {
+ if (n >= 0 && n < Parrot_pcc_get_regs_used(interp, CONTEXT(interp), t)) {
switch (t) {
case REGNO_INT:
return Parrot_str_from_int(interp, IREG(n))->strstart;
@@ -3699,7 +3699,7 @@
}
if (! s[1]) {
/* Print all registers of this type. */
- const int max_reg = CURRENT_CONTEXT_FIELD(interp, n_regs_used[t]);
+ const int max_reg = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), t);
int n;
for (n = 0; n < max_reg; n++) {
Modified: branches/context_pmc3/src/jit.c
==============================================================================
--- branches/context_pmc3/src/jit.c Mon Aug 31 22:49:09 2009 (r40897)
+++ branches/context_pmc3/src/jit.c Mon Aug 31 22:49:22 2009 (r40898)
@@ -396,8 +396,10 @@
{
int typ;
- cur_section->ru[0].registers_used = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
- cur_section->ru[3].registers_used = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
+ cur_section->ru[0].registers_used = Parrot_pcc_get_regs_used(interp,
+ CONTEXT(interp), REGNO_INT);
+ cur_section->ru[3].registers_used = Parrot_pcc_get_regs_used(interp,
+ CONTEXT(interp), REGNO_NUM);
cur_section->ru[1].registers_used = cur_section->ru[2].registers_used = 0;
for (typ = 0; typ < 4; typ++) {
@@ -1304,7 +1306,7 @@
if (offs >= sub->start_offs && offs < sub->end_offs) {
for (i = 0; i < 4; i++)
- CURRENT_CONTEXT_FIELD(interp, n_regs_used[i]) = sub->n_regs_used[i];
+ Parrot_pcc_set_regs_used(interp, CONTEXT(interp), i, sub->n_regs_used[i]);
return;
}
@@ -1425,7 +1427,7 @@
/* remember register usage */
for (i = 0; i < 4; i++)
- n_regs_used[i] = CURRENT_CONTEXT_FIELD(interp, n_regs_used[i]);
+ n_regs_used[i] = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), i);
set_reg_usage(interp, code_start);
@@ -1679,7 +1681,7 @@
/* restore register usage */
for (i = 0; i < 4; i++)
- CURRENT_CONTEXT_FIELD(interp, n_regs_used[i]) = n_regs_used[i];
+ Parrot_pcc_set_regs_used(interp, CONTEXT(interp), i, n_regs_used[i]);
/* Do fixups before converting offsets */
(arch_info->jit_dofixup)(jit_info, interp);
Modified: branches/context_pmc3/src/jit/i386/jit_defs.c
==============================================================================
--- branches/context_pmc3/src/jit/i386/jit_defs.c Mon Aug 31 22:49:09 2009 (r40897)
+++ branches/context_pmc3/src/jit/i386/jit_defs.c Mon Aug 31 22:49:22 2009 (r40898)
@@ -1268,7 +1268,7 @@
int i, used_i, save_i;
const jit_arch_regs *reg_info;
- used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
+ used_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), 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) {
@@ -1284,7 +1284,7 @@
int i, used_i, save_i;
const jit_arch_regs *reg_info;
- used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
+ used_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), 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 */
@@ -1308,8 +1308,8 @@
int i, used_i, used_n;
const jit_arch_regs *reg_info;
- used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
- used_n = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
+ used_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_INT);
+ used_n = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), 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];
@@ -1339,8 +1339,8 @@
int i, used_i, used_n;
const jit_arch_regs *reg_info;
- used_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
- used_n = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
+ used_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_INT);
+ used_n = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_NUM);
reg_info = &jit_info->arch_info->regs[jit_info->code_type];
for (i = 0; i < used_i; ++i) {
@@ -1429,7 +1429,6 @@
{
PMC *sig_args, *sig_params, *sig_result;
INTVAL *sig_bits, sig, i, n;
- PackFile_Constant ** constants;
opcode_t *params, *result;
char params_map;
int skip, used_n;
@@ -1443,13 +1442,12 @@
Parrot_ex_throw_from_c_args(interp, NULL, 1,
"set_args_jit - can't do that yet ");
- constants = CURRENT_CONTEXT_FIELD(interp, constants);
- sig_args = constants[CUR_OPCODE[1]]->u.key;
+ sig_args = Parrot_pcc_get_pmc_constant(interp, CONTEXT(interp), CUR_OPCODE[1]);
if (!VTABLE_elements(interp, sig_args))
return;
params = jit_info->optimizer->sections->begin;
- sig_params = constants[params[1]]->u.key;
+ sig_params = Parrot_pcc_get_pmc_constant(interp, CONTEXT(interp), params[1]);
ASSERT_SIG_PMC(sig_params);
GETATTR_FixedIntegerArray_int_array(interp, sig_args, sig_bits);
n = VTABLE_elements(interp, sig_args);
@@ -1459,7 +1457,7 @@
*/
result = CUR_OPCODE + 2 + n + 3; /* set_args, set_p_pc */
PARROT_ASSERT(*result == PARROT_OP_get_results_pc);
- sig_result = constants[result[1]]->u.key;
+ sig_result = Parrot_pcc_get_pmc_constant(interp, CONTEXT(interp), result[1]);
ASSERT_SIG_PMC(sig_result);
if (!VTABLE_elements(interp, sig_result))
Modified: branches/context_pmc3/src/packfile.c
==============================================================================
--- branches/context_pmc3/src/packfile.c Mon Aug 31 22:49:09 2009 (r40897)
+++ branches/context_pmc3/src/packfile.c Mon Aug 31 22:49:22 2009 (r40898)
@@ -681,7 +681,7 @@
&& interp->run_core != PARROT_FAST_CORE)
interp->run_core = PARROT_FAST_CORE;
- CURRENT_CONTEXT_FIELD(interp, constants) = interp->code->const_table->constants;
+ Parrot_pcc_set_constants(interp, CONTEXT(interp), interp->code->const_table->constants);
retval = (PMC *)Parrot_runops_fromc_args(interp, sub_pmc, "P");
interp->run_core = old;
@@ -3083,9 +3083,9 @@
}
interp->code = new_cs;
- CURRENT_CONTEXT_FIELD(interp, constants) = really
+ Parrot_pcc_set_constants(interp, CONTEXT(interp), really
? find_constants(interp, new_cs->const_table)
- : new_cs->const_table->constants;
+ : new_cs->const_table->constants);
/* new_cs->const_table->constants; */
Parrot_pcc_set_pred_offset(interp, CONTEXT(interp),
Modified: branches/context_pmc3/src/runcore/main.c
==============================================================================
--- branches/context_pmc3/src/runcore/main.c Mon Aug 31 22:49:09 2009 (r40897)
+++ branches/context_pmc3/src/runcore/main.c Mon Aug 31 22:49:22 2009 (r40898)
@@ -188,10 +188,10 @@
ASSERT_ARGS(prederef_args)
const PackFile_ConstTable * const const_table = interp->code->const_table;
- const int regs_n = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_NUM]);
- const int regs_i = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_INT]);
- const int regs_p = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_PMC]);
- const int regs_s = CURRENT_CONTEXT_FIELD(interp, n_regs_used[REGNO_STR]);
+ const int regs_n = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_NUM);
+ const int regs_i = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_INT);
+ const int regs_p = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_PMC);
+ const int regs_s = Parrot_pcc_get_regs_used(interp, CONTEXT(interp), REGNO_STR);
/* prederef var part too */
const int m = opinfo->op_count;
More information about the parrot-commits
mailing list