Mail Archives: djgpp-workers/2001/05/23/11:33:51
Hi Bill,
In your version of `djasm', you refer to the double-precision shift
instructions as if they were shifts of an operand that is twice as
wide, e.g.:
/* 16 bit shift double (ie 32 bit shift). */
/* 32 bit shift double (ie 64 bit shift), can be either
`shldd'/`shrdd' or `shldq'/'shrdq' */
But I'm hesitant to refer to Intel's `double precision' shifts as `double'
(32-bit) or `quad' (64-bit) shifts. For example, the Intel documentation
says that the double-precision shift instruction
SHLD D2, D1, count
has the following effect:
- Shift D2 left by `count' bits.
- Fill the vacated LSB of D2 using the MSB of D1.
- Contents of D1 are not modified.
Because D1 is unchanged, this operation IMHO is not a true shift of a
monolithic 32- or 64-bit operand. It's this feature that makes this a
double *precision* shift rather than just a `double' shift.
So IMHO the mnemonics for (and description of) these double-precision
instructions should be reevaluated.
TIA for any comments or suggestions.
jeff
- Raw text -