Also, running nasm on both sal eax, cl and shl eax, cl produces D3 E0.
Technically real processors probably work with D3 F0 but it is probably easier and definitely faster to fix this here than to get Oracle to support an undocumented opcode in VirtualBox.
Live-bootstrap (which uses this repo) freezes when run on VirtualBox.
The root cause is that VirtualBox does not support the encoding of
sal_eax,cl
asD3F0
.sal_eax,cl
should beD3E0
which works with VirtualBox.The
D3F0
encoding can be described asD3 /6
which is not documented in the Intel documentation: http://web.archive.org/web/20190606075330/https://software.intel.com/sites/default/files/managed/a4/60/325383-sdm-vol-2abcd.pdfSHL and SAL are two different mnemomics for the same instruction. The both should be encoded using
D3 /4
, which isD3 E0
forsal_eax,cl
.Also see: https://www.felixcloutier.com/x86/sal:sar:shl:shr https://stackoverflow.com/questions/8373415/difference-between-shl-and-sal-in-80x86
Also, running nasm on both
sal eax, cl
andshl eax, cl
producesD3 E0
.Technically real processors probably work with
D3 F0
but it is probably easier and definitely faster to fix this here than to get Oracle to support an undocumented opcode in VirtualBox.