Fix faligndata (Vince Weaver)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4992 c046a42c-6fe2-441c-8c8c-71466251a162
master
blueswir1 2008-08-06 19:50:16 +00:00
parent 43e9e742b9
commit 06057e6f6c
1 changed files with 4 additions and 1 deletions

View File

@ -234,7 +234,10 @@ void helper_faligndata(void)
uint64_t tmp;
tmp = (*((uint64_t *)&DT0)) << ((env->gsr & 7) * 8);
tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8);
/* on many architectures a shift of 64 does nothing */
if ((env->gsr & 7) != 0) {
tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8);
}
*((uint64_t *)&DT0) = tmp;
}