/* automatically generated by sparc-misc-auto.sh, do not edit! */

/* the register mapping: */
#define TME_SPARC_IREG_UNDEF		(-1)
#define TME_SPARC_IREG_G0		(0)
#define TME_SPARC_IREG_G1		(1)
#define TME_SPARC_IREG_G2		(2)
#define TME_SPARC_IREG_G3		(3)
#define TME_SPARC_IREG_G4		(4)
#define TME_SPARC_IREG_G5		(5)
#define TME_SPARC_IREG_G6		(6)
#define TME_SPARC_IREG_G7		(7)
#define TME_SPARC64_IREG_AG_G0	((TME_SPARC_WINDOWS_MAX * 16) + 8 + (8 * 0))
#define TME_SPARC64_IREG_MG_G0	((TME_SPARC_WINDOWS_MAX * 16) + 8 + (8 * 1))
#define TME_SPARC64_IREG_IG_G0	((TME_SPARC_WINDOWS_MAX * 16) + 8 + (8 * 2))
#define TME_SPARC_IREG_PC		((TME_SPARC_WINDOWS_MAX * 16) + 32)
#define TME_SPARC_IREG_PC_NEXT		((TME_SPARC_WINDOWS_MAX * 16) + 33)
#define TME_SPARC_IREG_PC_NEXT_NEXT		((TME_SPARC_WINDOWS_MAX * 16) + 34)
#define TME_SPARC_IREG_INSN		((TME_SPARC_WINDOWS_MAX * 16) + 35)
#define TME_SPARC_IREG_TMP(x)		((TME_SPARC_WINDOWS_MAX * 16) + 36 + (x))
#define TME_SPARC_IREG_Y		((TME_SPARC_WINDOWS_MAX * 16) + 39)
#define TME_SPARC_IREG_FPX		((TME_SPARC_WINDOWS_MAX * 16) + 40)
#define TME_SPARC32_IREG_PSR		((TME_SPARC_WINDOWS_MAX * 16) + 44)
#define tme_sparc32_ireg_psr		tme_sparc_ireg_uint32(TME_SPARC32_IREG_PSR)
#define tme_sparc64_ireg_pstate	tme_sparc_ireg_uint32(((TME_SPARC_WINDOWS_MAX * 16) + 44) << 1)
#define tme_sparc32_ireg_wim		tme_sparc_ireg_uint32((TME_SPARC_WINDOWS_MAX * 16) + 45)
#define tme_sparc64_ireg_winstates	tme_sparc_ireg_uint32((((TME_SPARC_WINDOWS_MAX * 16) + 45) << 1) + 0)
#define TME_SPARC64_WINSTATES_CWP(x)		(((x) & 0x3f) << (8 * 0))
#define tme_sparc64_ireg_cwp		tme_sparc_ireg_uint8((((TME_SPARC_WINDOWS_MAX * 16) + 45) << 3) + 0)
#define TME_SPARC64_WINSTATES_CANRESTORE(x)	(((x) & 0x3f) << (8 * 1))
#define tme_sparc64_ireg_canrestore	tme_sparc_ireg_uint8((((TME_SPARC_WINDOWS_MAX * 16) + 45) << 3) + 1)
#define TME_SPARC64_WINSTATES_CANSAVE(x)	(((x) & 0x3f) << (8 * 2))
#define tme_sparc64_ireg_cansave	tme_sparc_ireg_uint8((((TME_SPARC_WINDOWS_MAX * 16) + 45) << 3) + 2)
#define TME_SPARC64_WINSTATES_OTHERWIN(x)	(((x) & 0x3f) << (8 * 3))
#define tme_sparc64_ireg_otherwin	tme_sparc_ireg_uint8((((TME_SPARC_WINDOWS_MAX * 16) + 45) << 3) + 3)
#define tme_sparc64_ireg_winstates_mask tme_sparc_ireg_uint32((((TME_SPARC_WINDOWS_MAX * 16) + 45) << 1) + 1)
#define tme_sparc32_ireg_tbr		tme_sparc_ireg_uint32((TME_SPARC_WINDOWS_MAX * 16) + 46)
#define tme_sparc64_ireg_tba		tme_sparc_ireg_uint64((TME_SPARC_WINDOWS_MAX * 16) + 46)
#define tme_sparc64_ireg_tpc(tl)	tme_sparc_ireg_uint64((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 0) + 47 + ((tl) - 1))
#define tme_sparc64_ireg_tnpc(tl)	tme_sparc_ireg_uint64((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 1) + 47 + ((tl) - 1))
#define TME_SPARC64_IREG_TSTATE(tl)	((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 2) + 47 + ((tl) - 1))
#define tme_sparc64_ireg_tstate(tl)	tme_sparc_ireg_uint64(TME_SPARC64_IREG_TSTATE(tl))
#define tme_sparc64_ireg_tstate_ccr(tl) tme_sparc_ireg_uint8((TME_SPARC64_IREG_TSTATE(tl) << 3) + sizeof(tme_uint32_t))
#if TME_SPARC_TL_MAX > 8
#error "TME_SPARC_TL_MAX changed"
#endif
#define tme_sparc64_ireg_tt(tl)	tme_sparc_ireg_uint8((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 47) << 3) + ((tl) - 1))
#define tme_sparc64_ireg_tl		tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 0)
#define tme_sparc64_ireg_pil		tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 1)
#define tme_sparc64_ireg_asi		tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 2)
#define tme_sparc64_ireg_fprs		tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 3)
#define tme_sparc64_ireg_wstate	tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 4)
#define tme_sparc64_ireg_cleanwin	tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 5)
#define tme_sparc64_ireg_tick_npt	tme_sparc_ireg_uint8(((((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 47) << 3) + 6)
#define tme_sparc64_ireg_tick_offset	tme_sparc_ireg_uint64(((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 48)
#define tme_sparc64_ireg_ver		tme_sparc_ireg_uint64(((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 49)
#define TME_SPARC64_IREG_CCR		(((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 50)
#define tme_sparc64_ireg_ccr		tme_sparc_ireg_uint8(TME_SPARC64_IREG_CCR << 3)
#define TME_SPARC64_IREG_RCC		(((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 51)
#define tme_sparc64_ireg_va_hole_start tme_sparc_ireg_uint64(((TME_SPARC_WINDOWS_MAX * 16) + (TME_SPARC_TL_MAX * 3) + 1) + 52)
/* automatically generated by sparc-insns-auto.sh, do not edit! */
_TME_RCSID("$Id: sparc-insns-auto.sh,v 1.10 2010/06/05 16:13:41 fredette Exp $");

TME_SPARC_FORMAT3_DECL(tme_sparc32_add, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_addcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sub, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_subcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_or, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_orcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_orn, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_orncc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_and, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_andcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_andn, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_andncc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_xor, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_xorcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_xnor, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_xnorcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_addx, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_addxcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_subx, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_subxcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_taddcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_taddcctv, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_tsubcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_tsubcctv, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_umul, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_umulcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_smul, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_smulcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_udiv, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_udivcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sdiv, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sdivcc, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sll, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_srl, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sra, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldb, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stb, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldh, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sth, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ld, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_st, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldd, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_std, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldstub, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldstuba, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_swap, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_swapa, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldba, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stba, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldha, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stha, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_lda, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_sta, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldda, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stda, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_jmpl, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldf, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_lddf, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_ldfsr, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stf, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stdf, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_stfsr, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_fpop1, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_fpop2, tme_uint32_t);
TME_SPARC_FORMAT3_DECL(tme_sparc32_mulscc, tme_uint32_t);
void tme_sparc32_atomic _TME_P((struct tme_sparc *, struct tme_sparc_ls *));
void tme_sparc32_load _TME_P((struct tme_sparc *, struct tme_sparc_ls *));
void tme_sparc32_store _TME_P((struct tme_sparc *, struct tme_sparc_ls *));
tme_shared tme_uint8_t *tme_sparc32_ls _TME_P((struct tme_sparc *, tme_uint32_t, tme_uint32_t *, tme_uint32_t));

#ifdef TME_HAVE_INT64_T
TME_SPARC_FORMAT3_DECL(tme_sparc64_add, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_addcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sub, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_subcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_or, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_orcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_orn, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_orncc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_and, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_andcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_andn, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_andncc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_xor, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_xorcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_xnor, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_xnorcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_addx, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_addxcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_subx, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_subxcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_taddcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_taddcctv, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_tsubcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_tsubcctv, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_umul, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_umulcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_smul, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_smulcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_udiv, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_udivcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sdiv, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sdivcc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sll, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_srl, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sra, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldb, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stb, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldh, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sth, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ld, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_st, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldd, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_std, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldstub, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldstuba, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_swap, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_swapa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldba, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stba, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldha, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stha, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_lda, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sta, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldda, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stda, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_jmpl, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldf, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_lddf, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldfsr, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stf, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stdf, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stfsr, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_fpop1, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_fpop2, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_mulscc, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldx, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stx, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldqf, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stqf, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldxa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stxa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldfa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_lddfa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stfa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stdfa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_ldqfa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_stqfa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_casa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_casxa, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_mulx, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_sdivx, tme_uint64_t);
TME_SPARC_FORMAT3_DECL(tme_sparc64_udivx, tme_uint64_t);
void tme_sparc64_atomic _TME_P((struct tme_sparc *, struct tme_sparc_ls *));
void tme_sparc64_load _TME_P((struct tme_sparc *, struct tme_sparc_ls *));
void tme_sparc64_store _TME_P((struct tme_sparc *, struct tme_sparc_ls *));
tme_shared tme_uint8_t *tme_sparc64_ls _TME_P((struct tme_sparc *, tme_uint64_t, tme_uint64_t *, tme_uint32_t));

#endif /* TME_HAVE_INT64_T */
