From 8ac8157022e788bb5c5ca3589f8025825f904c2a Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Thu, 4 Sep 2003 18:28:38 -0700 Subject: [PATCH] [PATCH] incomplete asm constraints in arch/i386/pci/pcbios.c This fixes a "miscompile" HP reported against gcc 3.3 with -march-pentium4. It turned out to be a non-complete asm contraint. the existing constraint on "opt" was on the address of "opt", which allowed gcc to reorder the setting of the fields inside opt to beyond the asm that uses it, which is less than useful at best. --- arch/i386/pci/pcbios.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/i386/pci/pcbios.c b/arch/i386/pci/pcbios.c index 9e8ff72c542f5..8db66f34640f1 100644 --- a/arch/i386/pci/pcbios.c +++ b/arch/i386/pci/pcbios.c @@ -430,7 +430,8 @@ struct irq_routing_table * __devinit pcibios_get_irq_routing_table(void) "xor %%ah, %%ah\n" "1:" : "=a" (ret), - "=b" (map) + "=b" (map), + "+m" (opt) : "0" (PCIBIOS_GET_ROUTING_OPTIONS), "1" (0), "D" ((long) &opt), -- 2.53.0