mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00
Convert vr54xx multiply instructions to TCG.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4756 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
278ed7c329
commit
92af06d216
4 changed files with 32 additions and 240 deletions
|
@ -168,10 +168,9 @@ void do_dclz (void)
|
|||
#endif /* TARGET_MIPS64 */
|
||||
|
||||
/* 64 bits arithmetic for 32 bits hosts */
|
||||
#if TARGET_LONG_BITS > HOST_LONG_BITS
|
||||
static always_inline uint64_t get_HILO (void)
|
||||
{
|
||||
return (env->HI[env->current_tc][0] << 32) | (uint32_t)env->LO[env->current_tc][0];
|
||||
return ((uint64_t)(env->HI[env->current_tc][0]) << 32) | (uint32_t)env->LO[env->current_tc][0];
|
||||
}
|
||||
|
||||
static always_inline void set_HILO (uint64_t HILO)
|
||||
|
@ -192,6 +191,7 @@ static always_inline void set_HI_LOT0 (uint64_t HILO)
|
|||
env->HI[env->current_tc][0] = (int32_t)(HILO >> 32);
|
||||
}
|
||||
|
||||
#if TARGET_LONG_BITS > HOST_LONG_BITS
|
||||
void do_madd (void)
|
||||
{
|
||||
int64_t tmp;
|
||||
|
@ -223,6 +223,7 @@ void do_msubu (void)
|
|||
tmp = ((uint64_t)(uint32_t)T0 * (uint64_t)(uint32_t)T1);
|
||||
set_HILO(get_HILO() - tmp);
|
||||
}
|
||||
#endif /* TARGET_LONG_BITS > HOST_LONG_BITS */
|
||||
|
||||
/* Multiplication variants of the vr54xx. */
|
||||
void do_muls (void)
|
||||
|
@ -294,7 +295,6 @@ void do_mulshiu (void)
|
|||
{
|
||||
set_HIT0_LO(0 - ((uint64_t)(uint32_t)T0 * (uint64_t)(uint32_t)T1));
|
||||
}
|
||||
#endif /* TARGET_LONG_BITS > HOST_LONG_BITS */
|
||||
|
||||
#ifdef TARGET_MIPS64
|
||||
void do_dmult (void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue