diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-03-21 17:57:29 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-03-21 17:57:29 +0000 |
commit | 72a9747b79e2facf84a61248196d8fcf17665b35 (patch) | |
tree | 56b4dd64d32b85df0230ff3f0ea9af86c5b72b73 /target-sparc/op.c | |
parent | 44e7757c2afc4087b7253d227a7cbcfa52955dad (diff) |
Convert save, restore, saved, restored, and flushw to TCG
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4092 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-sparc/op.c')
-rw-r--r-- | target-sparc/op.c | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/target-sparc/op.c b/target-sparc/op.c index 249061794a..99b9942e00 100644 --- a/target-sparc/op.c +++ b/target-sparc/op.c @@ -37,109 +37,11 @@ #endif #endif -#ifndef TARGET_SPARC64 -/* XXX: use another pointer for %iN registers to avoid slow wrapping - handling ? */ -void OPPROTO op_save(void) -{ - uint32_t cwp; - cwp = (env->cwp - 1) & (NWINDOWS - 1); - if (env->wim & (1 << cwp)) { - raise_exception(TT_WIN_OVF); - } - set_cwp(cwp); - FORCE_RET(); -} - -void OPPROTO op_restore(void) -{ - uint32_t cwp; - cwp = (env->cwp + 1) & (NWINDOWS - 1); - if (env->wim & (1 << cwp)) { - raise_exception(TT_WIN_UNF); - } - set_cwp(cwp); - FORCE_RET(); -} -#else -/* XXX: use another pointer for %iN registers to avoid slow wrapping - handling ? */ -void OPPROTO op_save(void) -{ - uint32_t cwp; - cwp = (env->cwp - 1) & (NWINDOWS - 1); - if (env->cansave == 0) { - raise_exception(TT_SPILL | (env->otherwin != 0 ? - (TT_WOTHER | ((env->wstate & 0x38) >> 1)): - ((env->wstate & 0x7) << 2))); - } else { - if (env->cleanwin - env->canrestore == 0) { - // XXX Clean windows without trap - raise_exception(TT_CLRWIN); - } else { - env->cansave--; - env->canrestore++; - set_cwp(cwp); - } - } - FORCE_RET(); -} - -void OPPROTO op_restore(void) -{ - uint32_t cwp; - cwp = (env->cwp + 1) & (NWINDOWS - 1); - if (env->canrestore == 0) { - raise_exception(TT_FILL | (env->otherwin != 0 ? - (TT_WOTHER | ((env->wstate & 0x38) >> 1)): - ((env->wstate & 0x7) << 2))); - } else { - env->cansave++; - env->canrestore--; - set_cwp(cwp); - } - FORCE_RET(); -} -#endif - void OPPROTO op_jmp_label(void) { GOTO_LABEL_PARAM(1); } -#ifdef TARGET_SPARC64 -void OPPROTO op_flushw(void) -{ - if (env->cansave != NWINDOWS - 2) { - raise_exception(TT_SPILL | (env->otherwin != 0 ? - (TT_WOTHER | ((env->wstate & 0x38) >> 1)): - ((env->wstate & 0x7) << 2))); - } -} - -void OPPROTO op_saved(void) -{ - env->cansave++; - if (env->otherwin == 0) - env->canrestore--; - else - env->otherwin--; - FORCE_RET(); -} - -void OPPROTO op_restored(void) -{ - env->canrestore++; - if (env->cleanwin < NWINDOWS - 1) - env->cleanwin++; - if (env->otherwin == 0) - env->cansave--; - else - env->otherwin--; - FORCE_RET(); -} -#endif - #define CHECK_ALIGN_OP(align) \ void OPPROTO op_check_align_T0_ ## align (void) \ { \ |