]> git.baikalelectronics.ru Git - kernel.git/commit
[x86 setup] Fix assembly constraints
authorH. Peter Anvin <hpa@zytor.com>
Sat, 14 Jul 2007 23:47:13 +0000 (16:47 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 18 Jul 2007 18:36:17 +0000 (11:36 -0700)
commit7bfd438cd708f8b22dc5740462ef7589cd0bbc67
treef1efc4a66fcc25749db43eaa77e3075c65b2a1ab
parent6e7f60704fec5dca1af783d4be382e1712988279
[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>
arch/i386/boot/boot.h
arch/i386/boot/cpucheck.c
arch/i386/boot/mca.c
arch/i386/boot/pm.c
arch/i386/boot/video.c
arch/i386/boot/voyager.c