[LLVMdev] how to declare that two registers must be different
Rafael EspĂndola
rafael.espindola at gmail.com
Mon Sep 18 04:39:20 PDT 2006
> "The destination register shall not be the same as the operand
> register Rm. R15 shall not be used as an operand or as the
> destination register."
The ARM ARM has this "Operand restriction" on MUL:
Specifying the same register for <Rd> and <Rm> has UNPEDICTABLE results.
> Then, for the load and store multiple instructions, LDM and STM, the R15
> should not be used as the base register. Neither should R15 be the
> destination for an MCR, Move to Co-processor register from Register.
>
> These are some examples, hopefully enough to alter the regalloc
> interface to cope.
Restrictions of the form cannot be register Rx can be solved by
creating a register class without Rx. The problem is the "must not be
the same" restriction.
> Cheers,
>
>
> Ralph.
Thanks,
Rafael
More information about the llvm-dev
mailing list