(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.