diff options
Diffstat (limited to 'regscope.c')
-rw-r--r-- | regscope.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -224,7 +224,14 @@ reg_alloc_free (reg_alloc_t *ra, reg_t reg) int idx = find_index (ra, reg); reg_status_t *status = &ra->status[idx]; - status->allocated = FALSE; + if (status->spillable) + { + fprintf (stderr, "Attempting to free a spillable register\n"); + return; + } + + if (status->n_spills == 0) + status->allocated = FALSE; } int |