-
- Downloads
[x86 setup] Fix assembly constraints
Fix incorrect assembly constraints. In particular, fix memory
constraints used inside push..pop, which can cause invalid operation
since gcc may generate %esp-relative references.
Additionally:
outl() should have "dN" not "dn".
query_mca() shouldn't listen 16/32-bit registers in an 8-bit only
context.
has_eflag(): the "mask" is only used well after both the stack pointer
and the output registers have been touched; this requires the output
registers to be earlyclobbers (=&) and the input to exclude memory (so
"ri", not "g").
Thanks to Etienne Lorrain and Chuck Ebbert for prompting this review.
Cc: Etienne Lorrain <etienne_lorrain@yahoo.fr>
Cc: Chuck Ebbert <cebbert@redhat.com>
Signed-off-by:
H. Peter Anvin <hpa@zytor.com>
Showing
- arch/i386/boot/boot.h 1 addition, 1 deletionarch/i386/boot/boot.h
- arch/i386/boot/cpucheck.c 2 additions, 2 deletionsarch/i386/boot/cpucheck.c
- arch/i386/boot/mca.c 1 addition, 1 deletionarch/i386/boot/mca.c
- arch/i386/boot/pm.c 1 addition, 1 deletionarch/i386/boot/pm.c
- arch/i386/boot/video.c 1 addition, 1 deletionarch/i386/boot/video.c
- arch/i386/boot/voyager.c 1 addition, 1 deletionarch/i386/boot/voyager.c
Loading
Please register or sign in to comment