First post, by superfury
The documentation states(80386 programmer's reference manual: https://pdos.csail.mit.edu/6.828/2008/readings/i386/SHRD.htm):
IF ShiftAmt >= OperandSize
THEN (* Bad parameters *)
r/m := UNDEFINED;
CF, OF, SF, ZF, AF, PF := UNDEFINED;
So, with 16-bit operands, this will happen(32-bit operands are unchanged due to the mask of 1F, no overflow can happen):
Does that mean that shifts of 16(cnt=0x10) and up are NOPs? Or shifts of 17(0x11) and up are NOPs? I'd assume OperandSize==16 in this case?
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io