This is the mail archive of the
gdb@sourceware.cygnus.com
mailing list for the GDB project.
Re: ST(i) and MMj
> > 1) Define REGISTER_RAW_SIZE to be 8 for MMX registers, and define
> > REGISTER_BYTE so that for MMX registers it goes to the data of
> > the according ST(i) register using the current TOS.
> >
> > 2) target_fetch_registers then will actually bring the value of the
> > appropriate ST(i) register when passed a regno of an MMX
> > register.
>
> I thought we had posited that the MMX registers, when stored in
> memory, have zero length --- i.e., REGISTER_RAW_SIZE (MM0_REGNO) == 0
> --- to avoid overlap problems in loops.
The above still avoids overlap, by keeping only a single copy of each
FPU register in the register file. However, the zero-size definition
isn't useful when you want to read the value of an MMX register from
the register file. So I changed my mind ;-).
> What concerns me is that it be reasonable enough that people who are
> not familiar with the x86 won't write code that breaks it.
Hiding the complexity behind REGISTER_BYTE should prevent this.