On Wed, Jul 02, 2008 at 06:01:45PM +0000, Joel Soete wrote: >> So can you remind me (and Kyle) why this is better than what is >> there now? > mmm may be because gcc consider it now as only 1 'volatile' instruction: > > in <ccio_map_sg> > -----------< Original code > --------------+------------< New stuff > >----------------- > 200: 06 80 53 13 lci r0(sr1,r20),r19 | 200: 08 1a 02 54 copy r26,r20 > 204: d2 73 1a 74 extrw,u r19,19,12,r19 | 204: 06 a0 53 14 lci r0(sr1,r21),r20 > 208: 08 1a 02 5c copy r26,ret0 | 208: d2 94 1a 74 extrw,u r20,19,12,r20 > 20c: d7 93 0e 14 depw r19,15,12,ret0 | 20c: d7 94 0e 14 depw r20,15,12,ret0 > 210: 0e dc 12 80 stw ret0,0(r22) 210: 0e dc 12 80 stw ret0,0(r22) > 214: 06 c0 12 80 fdc r0(r22) 214: 06 c0 12 80 fdc r0(r22) > 218: 00 00 04 00 sync 218: 00 00 04 00 sync > > thought? I'm not comfortable "New stuff" version is correct. In "New Stuff", r20 gets clobbered and values copied from r26 are lost. That's not the case in the original code. "depw" only replaces 12 bits of "ret0" in the original code. thanks, grant -- 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