From 72a9747b79e2facf84a61248196d8fcf17665b35 Mon Sep 17 00:00:00 2001 From: blueswir1 Date: Fri, 21 Mar 2008 17:57:29 +0000 Subject: 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 --- target-sparc/op.c | 98 ------------------------------------------------------- 1 file changed, 98 deletions(-) (limited to 'target-sparc/op.c') 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) \ { \ -- cgit v1.2.3