Revision 06057e6f

b/target-sparc/op_helper.c
234 234
    uint64_t tmp;
235 235

  
236 236
    tmp = (*((uint64_t *)&DT0)) << ((env->gsr & 7) * 8);
237
    tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8);
237
    /* on many architectures a shift of 64 does nothing */
238
    if ((env->gsr & 7) != 0) {
239
        tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8);
240
    }
238 241
    *((uint64_t *)&DT0) = tmp;
239 242
}
240 243

  

Also available in: Unified diff