[llvm-dev] XOR A, A treatment (original) (raw)
Hans Wennborg via llvm-dev llvm-dev at lists.llvm.org
Thu Sep 27 04:07:06 PDT 2018
- Previous message: [llvm-dev] XOR A, A treatment
- Next message: [llvm-dev] How to cross-compile for ARC in clang?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Sep 27, 2018 at 12:50 PM, James Courtier-Dutton via llvm-dev <llvm-dev at lists.llvm.org> wrote:
Hi,
I am wondering about what suitable assembler level instruction substations are.
I'm not sure exactly what you're asking.
For example: Result = XOR Reg1, Reg1;
At the assembler level, there is no separate Result value. With "XOR Reg1, Reg1", the result (zero) goes into Reg1, and EFLAGS are updated as a side-effect.
Result is always zero, with the flags cleared. Could I substitute this for: Result = XOR Constant0, Constant0;
There is no such XOR instruction.
Thus freeing up Reg1 usage. I think this would be a valid substitution, but I wanted to check with the knowledgeable people on this list as to whether I am missing something important. Other possible substitutions might be: Result = XOR Reg2, Reg2; Because it does not actually matter which reg is used.
Sure, XOR can be used like this to clear any desired register.
Thanks, Hans
- Previous message: [llvm-dev] XOR A, A treatment
- Next message: [llvm-dev] How to cross-compile for ARC in clang?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]