> As "tmp" is not referenced after the assembly, I removed it from the 
> output list and added it to the input list.  This appears to fix it.  Do 
> you see anything wrong with removing tmp from the output list?

Yes. You've told the compiler that the value in tmp hasn't changed and so it
is free to re-use it.

The way to do it is just to use the "=" constraint and split the "d" register
value:

        "# ending __up_read\n"
-       : "+m"(sem->count), "+d"(tmp)
-       : "a"(sem)
+       : "+m"(sem->count), "=d"(tmp)
+       : "a"(sem), "1"(tmp)
        : "memory", "cc");

However, if I remember rightly, this has some other adverse side effects on
the compiler:-( But it is the only other way to do it.

David
_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to