(like the 8 byte move from F'0'). I'll do my own investigation
of that and report that later.
Ok, the bad MVC:
MVC 112(8,13),=F'0'
is being generated by the movdi instruction:
;
; movdi instruction pattern(s).
;
(define_insn ""
[(set (match_operand:DI 0 "nonimmediate_operand" "=d,m,S")
(match_operand:DI 1 "general_operand" "g,d,SF"))]
;; [(set (match_operand:DI 0 "r_or_s_operand" "=dS,m")
;; (match_operand:DI 1 "r_or_s_operand" "diS*fF,d*fF"))]
"TARGET_CHAR_INSTRUCTIONS"
"*
{
...
return \"MVC^I%O0(8,%R0),%1\";
}"
which looks correct to me. The problem seems to be an =F'0' being
treated as a DI operand.
That extra memory constraint thing must be allowing this rogue
value through that was normally not picked up.
Any ideas?
Thanks. Paul.