On Tue, Jun 3, 2008 at 1:42 AM, Kyle McMartin <kyle@xxxxxxxxxxx> wrote: > Prevents GCC from reordering mmio accesses with regular memory > accesses. > > They're in assembly since I felt like maybe using the strongly > ordered completer on the instructions, so they would be more obvious > in disassembly. (Yes, I know there's no weakly ordered PA > implementation...) > +#ifdef CONFIG_64BIT > + asm volatile( > + " ldq 0(%0), %1\n" > + : : "r"(addr), "r"(q) : "memory"); > +#else > + unsigned int q_lo, q_hi; > + q_hi = __raw_readl(addr); > + q_lo = __raw_readl(addr+4); > + q = (unsigned long long)(q_hi << 32) | (q_lo); > +#endif > + > + return q; Is there any reason the 32-bit version is uses plain C? Cheers, Carlos. -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html