diff options
Diffstat (limited to 'gcc/config/m32c/m32c.md')
-rw-r--r-- | gcc/config/m32c/m32c.md | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/gcc/config/m32c/m32c.md b/gcc/config/m32c/m32c.md index aa6d3d7ca27..f1930d4fdf3 100644 --- a/gcc/config/m32c/m32c.md +++ b/gcc/config/m32c/m32c.md @@ -44,14 +44,35 @@ (UNS_EH_EPILOGUE 3) (UNS_PUSHM 4) (UNS_POPM 5) + (UNS_SMOVF 6) + (UNS_SSTR 7) + (UNS_SCMPU 8) + (UNS_SMOVU 9) ]) +;; n = no change, x = clobbered. The first 16 values are chosen such +;; that the enum has one bit set for each flag. +(define_attr "flags" "x,c,z,zc,s,sc,sz,szc,o,oc,oz,ozc,os,osc,osz,oszc,n" (const_string "n")) +(define_asm_attributes [(set_attr "flags" "x")]) + +(define_mode_macro QHI [QI HI]) +(define_mode_macro HPSI [(HI "TARGET_A16") (PSI "TARGET_A24")]) +(define_mode_macro QHPSI [QI HI (PSI "TARGET_A24")]) +(define_mode_macro QHSI [QI HI (SI "TARGET_A24")]) +(define_mode_attr bwl [(QI "b") (HI "w") (PSI "l") (SI "l")]) + +(define_code_macro any_cond [eq ne gt ge lt le gtu geu ltu leu]) +(define_code_macro eqne_cond [eq ne]) +(define_code_macro gl_cond [gt ge lt le gtu geu ltu leu]) + + + (define_insn "nop" [(const_int 0)] "" "nop") -;; n = no change, x = clobbered. The first 16 values are chosen such -;; that the enum has one bit set for each flag. -(define_attr "flags" "x,c,z,zc,s,sc,sz,szc,o,oc,oz,ozc,os,osc,osz,oszc,n" (const_string "n")) -(define_asm_attributes [(set_attr "flags" "x")]) +(define_insn "no_insn" + [(const_int 1)] + "" + "") |