Re: [PATCH 5/8] ppc: use correct asm ops
From: Hollis Blanchard <hidden>
Date: 2005-09-27 00:09:25
On Sep 24, 2005, at 5:43 PM, Roman Zippel wrote:
Use the correct assembler instructions, which match __do_in_asm/__do_out_asm.
Could you define "correct" here?
quoted hunk ↗ jump to hunk
--- linux.orig/include/asm-ppc/io.h 2005-09-23 16:20:24.000000000 +0200 +++ linux/include/asm-ppc/io.h 2005-09-23 16:20:26.000000000 +0200@@ -294,10 +294,10 @@ extern __inline__ void name(unsigned int __do_out_asm(outb, "stbx") #ifdef CONFIG_APUS __do_in_asm(inb, "lbzx") -__do_in_asm(inw, "lhz%U1%X1") -__do_in_asm(inl, "lwz%U1%X1") -__do_out_asm(outl,"stw%U0%X0") -__do_out_asm(outw, "sth%U0%X0") +__do_in_asm(inw, "lhzx") +__do_in_asm(inl, "lwzx") +__do_out_asm(outl,"stwx") +__do_out_asm(outw, "sthx") #elif defined (CONFIG_8260_PCI9) /* in asm cannot be defined if PCI9 workaround is used */ #define inb(port) in_8((port)+___IO_BASE)
I don't see where this is explained in the GCC docs, but as I understand it those %U %X things are allowing somebody to use the "update" and "index" variants of the instruction. Why doesn't this work for you? -Hollis