Yip, picked that up after I sent it. Thanks.
2009/5/19 Jim Wilson :
> On Mon, 2009-05-18 at 19:58 +1200, Michael Hope wrote:
>> (set (match_operand:SI 3 "register_operand" "=1")
>> (not:SI (xor:SI (match_dup 1) (match_dup 2]
>
> not xor is aka xnor. You probably want this without the
On Mon, 2009-05-18 at 19:58 +1200, Michael Hope wrote:
> (set (match_operand:SI 3 "register_operand" "=1")
> (not:SI (xor:SI (match_dup 1) (match_dup 2]
not xor is aka xnor. You probably want this without the two "not"
operations.
Jim
Thanks, that worked. I ended up using:
(define_insn "cmpcc_xor"
[(set (match_operand:CC 0 "register_operand" "=C")
(compare:CC
(not:SI (xor:SI (match_operand:SI 1 "register_operand" "%r")
(match_operand:SI 2 "register_operand" "b")))
(const_int
Michael Hope wrote:
* Using a define_insn to mark it as both a destructive xor and
compare in parallel, such as:
When a compare is in a parallel, the compare must be the first
operation. You have it second. This kind of pattern should work. You
can find many examples of it in the sparc.md
Hi there. I'm having trouble figuring out how to represent a
destructive comparison on the port I'm attempting. The ISA is very
simple and accumulator based, so to generate a compare of two
registers you would do:
; Compare R10 and R11, destroying R11 and setting C
LOADACC, R10
XOR,