Re: Can't find a register in R1_REGS while reloading asm.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux