Adam Thornton wrote:
>mess/machine/serial.c:779: Unable to generate reloads for:
>(insn 42 29 44 (parallel[
> (set (mem/s:QI (plus:SI (reg:SI 1 %r1)
> (const_int 2 [0x2])) 0)
> (not:QI (mem/s:QI (plus:SI (reg:SI 3 %r3)
> (const_int 7 [0x7])) 0)))
> (clobber (reg:CC 33 %cc))
> ] ) 253 {one_cmpqi2}
That's a bug in the old s390.md file, sorry. This pattern:
(define_insn "one_cmpqi2"
[(set (match_operand:QI 0 "memory_operand" "=Q")
(not:QI (match_operand:QI 1 "memory_operand" "0")))
(clobber (reg:CC 33))]
""
"xi\\t%0,255"
[(set_attr "op_type" "SI")])
is invalid, as matching constraints don't work with
memory operands.
This has long since been fixed, and all available 3.x versions
contain this expander instead:
(define_expand "one_cmplqi2"
[(parallel
[(set (match_operand:QI 0 "register_operand" "")
(xor:QI (match_operand:QI 1 "register_operand" "")
(const_int -1)))
(clobber (reg:CC 33))])]
""
"")
I haven't tested it, but replacing the one_cmpqi2 insn pattern
in 2.95 with this new expander should work, and fix the bug.
(Alternatively, as an absolute-low-risk fix, you could simply
delete the one_cmpqi2 pattern without replacement.)
Bye,
Ulrich
--
Dr. Ulrich Weigand
[EMAIL PROTECTED]