diff options
Diffstat (limited to 'ssa.c')
-rw-r--r-- | ssa.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -2003,6 +2003,12 @@ void register_alloc() { for (p = raw_defs; p; p = p->next) { COpr_t opr = p->opr; + /* + if (opr->info.var->loc < 0) + { + opr->reg = 3 - opr->info.var->loc; + continue; + } */ /* arguments */ opr->reg = -2; if (opr->par != opr) continue; if (cinterv_repr(opr)->range) @@ -2283,16 +2289,16 @@ void ssa_func(CType_t func) { CPSet_t vs = cpset_create(), avs = cpset_create(); CVList_t vars = NULL; COList_t all_oprs = NULL; - CVar_t pr; + /* CVar_t pr; */ int i; cfg_clear(); dtree_clear(); ssa_comp(func->rec.func.body, entry, NULL); + /* for (i = 0, pr = func->rec.func.params; i < 4 && pr; i++, pr = pr->next) - { - } + pr->loc = -(i + 1); */ /* mark arguments */ for (p = entry; p; p = p->next) { |