i386/163985: Incorrect operand size in boot0
ykamay at ccc.net.il
Tue Jan 10 11:00:31 UTC 2012
>Synopsis: Incorrect operand size in boot0
>Arrival-Date: Tue Jan 10 11:00:31 UTC 2012
In boot0.S, decw instruction is used on the drive number that was received from the loader. boot0 push the loader dx value, at early stage, and restore it later into ax
popw %ax # Drive number
subb $0x80-0x1,%al # Does next
cmpb NHRDRV,%al # drive exist? (from BIOS?)
jb print_drive # Yes
* If this is the only drive, don't display it as an option.
decw %ax # Already drive 0?
jz print_prompt # Yes
According to my knowledge, dh is undefined during the jump to boot0-start so the result of "decw %ax" is undefined.
The result is that an incorrect boot option is displayed.
More information about the freebsd-i386