[LLVMdev] how to declare that two registers must be different

Rafael EspĂ­ndola rafael.espindola at gmail.com
Tue Sep 19 04:11:18 PDT 2006


> My copy of the ARM ARM says:
>
> "Use of R15:  Specifying R15 for register <Rd>, <Rm>, or <Rs> has
> UNPREDICTABLE results."
>
> This is the same as above.  However, it goes on to say:
>
> "Operand restriction: Specifying the same register for <Rd> and <Rm> was
> previously described as producing UNPREDICTABLE results. There is no
> restriction in ARMv6, and it is believed all relevant ARMv4 and ARMv5
> implementations do not require this restriction either, because high
> performance multipliers read all their operands prior to writing back any
> results."
>
> Perhaps this isn't an issue any more?  I don't know the arch well enough
> to know what it means by "all relevant" implementations.
I think that I will ask for a new ARM ARM :-)

The gnu assemble gives an error if rd and rm are the same. Even with
-march=armv6. So I think that I will have to implement an workaround
anyway.

> -Chris

Thank you very much,
Rafael



More information about the llvm-dev mailing list