From 5593eaa854d0b23c3b270933a93b9b82946df729 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Sat, 14 Jul 2007 16:47:13 -0700 Subject: [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 Cc: Chuck Ebbert Signed-off-by: H. Peter Anvin --- arch/i386/boot/voyager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/i386/boot/voyager.c') diff --git a/arch/i386/boot/voyager.c b/arch/i386/boot/voyager.c index 9221614d0db..61c8fe0453b 100644 --- a/arch/i386/boot/voyager.c +++ b/arch/i386/boot/voyager.c @@ -32,7 +32,7 @@ int query_voyager(void) "setc %0 ; " "movw %%es, %1 ; " "popw %%es" - : "=qm" (err), "=rm" (es), "=D" (di) + : "=q" (err), "=r" (es), "=D" (di) : "a" (0xffc0)); if (err) -- cgit v1.2.3-70-g09d2