> 1) Remove "memory" from clobber. > 2) Change the output constraint "=m" (*mem) to "+m" (*mem) to express > that the memory may be written to by the CAS operation. > > This is a tighter constraint than before, but it is no longer > ambiguous. Previously we said we clobbered memory, but yet specified > some as read-only. "+m" indicates that the memory operand is both read and written. While I believe that changing from "=m" to "+m" is correct, it is not a all clear to me why this fixed the ICE. As shown in the PR, the gcse pass eliminated several loads of the high portion of the address of *mem. I don't think this would happen if the asm indicated that mem was clobbered. This would prevent gcse from optimising the address load. Dave -- J. David Anglin dave.anglin@xxxxxxxxxxxxxx National Research Council of Canada (613) 990-0752 (FAX: 952-6602) -- 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