> > Which is a problem because the compiler could schedule > > it be written back to real memory between the instructions. > > It can? There is no memory here, just registers. Even if it > is written to memory, how would that affect the register?
Although the function argument is passed in a register, the compiler could generate a store-load sequence before and after each __asm__() line. > Assuming you are right, would rewriting it to > __asm__("rlwimi %0,%0,16,0x00ff0000\n\t" > "rlwinm %0,%0,24,0x0000ffff" > : "+r"(value)); > help? Except that now you've stopped the compiler scheduling another instruction between the two - probably forcing a execution stall. David _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev