> >> "The bytes with the register are transmitted in target byte order."
> >> 
> >>          /* Aliases for Q regs.  */
> >>          nregs += 16;
> >>          if (reg < nregs) {
> >> 
> >> -            stfq_le_p(buf, env->vfp.regs[(reg - 32) * 2]);
> >> -            stfq_le_p(buf + 8, env->vfp.regs[(reg - 32) * 2 + 1]);
> >> +            stfq_p(buf, env->vfp.regs[(reg - 32) * 2]);
> >> +            stfq_p(buf + 8, env->vfp.regs[(reg - 32) * 2 + 1]);
> > 
> > This is wrong. You're still using little-endian ordering of words.
> 
> Can you explain a little bit further? If I'm in big-endian mode, stfq_p()
> will be stfq_be_p(), right?

Because we're actually storing two halves of a 128-bit value.   You still 
store the least significant half first.

Paul

Reply via email to