summaryrefslogtreecommitdiff
path: root/tcg/tcg.c
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2012-10-09 21:53:07 +0200
committerAurelien Jarno <aurelien@aurel32.net>2012-10-28 14:54:22 +0100
commit7dfd8c6aa1d0691d03c5ccc9b0c5a93bcf00f768 (patch)
tree630a26591ca215955ecf0a5b8aaf2c04ab2eef6a /tcg/tcg.c
parenta52ad07e7cde61c799ca3351ccd58c04d6f7474f (diff)
downloadqemu-7dfd8c6aa1d0691d03c5ccc9b0c5a93bcf00f768.tar.gz
tcg: start with local temps in TEMP_VAL_MEM state
Start with local temps in TEMP_VAL_MEM state, to make possible a later check that all the temps are correctly saved back to memory. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'tcg/tcg.c')
-rw-r--r--tcg/tcg.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tcg/tcg.c b/tcg/tcg.c
index d81b62883a..83336673aa 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -776,7 +776,11 @@ static void tcg_reg_alloc_start(TCGContext *s)
}
for(i = s->nb_globals; i < s->nb_temps; i++) {
ts = &s->temps[i];
- ts->val_type = TEMP_VAL_DEAD;
+ if (ts->temp_local) {
+ ts->val_type = TEMP_VAL_MEM;
+ } else {
+ ts->val_type = TEMP_VAL_DEAD;
+ }
ts->mem_allocated = 0;
ts->fixed_reg = 0;
}