Hello,
I think you should add the pair of constraints m and I respectively to
the description of the instruction in your md file (and a relevant
case 8 to handle such instruction), i.e.:
(define_insn "movqi"
- [(set (match_operand:QI 0 "nonimmediate_operand" "=p,q,m,m,p,q,p,q")
- (match_operand:QI 1 "general_operand" "m,m,p,q,p,q,I,I"))]
+ [(set (match_operand:QI 0 "nonimmediate_operand" "=p,q,m,m,p,q,p,q,m")
+ (match_operand:QI 1 "general_operand" "m,m,p,q,p,q,I,I,I"))]
""
"*
switch(which_alternative)
@@ -17,6 +17,8 @@
case 6:
case 7:
return \"l.addi \\t%0,r0,%1\\t # move immediate\";,
+ case 8:
+ return ...;
default:
return \"invalid alternative\";
}
It seems that the pair m and I is missing (which indicate the memory =
constant instruction). You could look for which_alternative variable
in GCC internals for more details on this.
Revital