return g_list_prepend (NULL, mv);
for (l = list; l; l = l->next) {
- MonoMethodVar *v1 = l->data;
+ MonoMethodVar *v1 = (MonoMethodVar *)l->data;
if (sort_type == 2) {
if (mv->spill_costs >= v1->spill_costs) {
/* linear scan */
for (l = vars; l; l = l->next) {
- vmv = l->data;
+ vmv = (MonoMethodVar *)l->data;
#ifdef DEBUG_LSCAN
printf ("START %2d %08x %08x\n", vmv->idx, vmv->range.first_use.abs_pos,
n_regvars = 0;
for (l = vars; l; l = l->next) {
- vmv = l->data;
+ vmv = (MonoMethodVar *)l->data;
if (vmv->reg >= 0) {
if ((gains [vmv->reg] > mono_arch_regalloc_cost (cfg, vmv)) && (cfg->varinfo [vmv->idx]->opcode != OP_REGVAR)) {
/* Compute used regs */
used_regs = 0;
for (l = vars; l; l = l->next) {
- vmv = l->data;
+ vmv = (MonoMethodVar *)l->data;
if (vmv->reg >= 0)
used_regs |= 1LL << vmv->reg;
int n_regs, n_regvars, i;
for (l = vars; l; l = l->next) {
- vmv = l->data;
+ vmv = (MonoMethodVar *)l->data;
LSCAN_DEBUG (printf ("VAR R%d %08x %08x C%d\n", cfg->varinfo [vmv->idx]->dreg, vmv->range.first_use.abs_pos,
vmv->range.last_use.abs_pos, vmv->spill_costs));
}
inactive = NULL;
while (unhandled) {
- MonoMethodVar *current = unhandled->data;
+ MonoMethodVar *current = (MonoMethodVar *)unhandled->data;
int pos, reg, max_free_pos;
gboolean changed;
/* Do the actual register assignment */
n_regvars = 0;
for (l = vars; l; l = l->next) {
- vmv = l->data;
+ vmv = (MonoMethodVar *)l->data;
if (vmv->reg >= 0) {
int reg_index = vmv->reg;
/* Compute used regs */
used_regs = 0;
for (l = vars; l; l = l->next) {
- vmv = l->data;
+ vmv = (MonoMethodVar *)l->data;
if (vmv->reg >= 0)
used_regs |= 1LL << vmv->reg;