This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Cleanups for the m68k backend
> > This has been on my todo list for a long time. One thing I'm not sure
> > about is what's the best way to represent movem (move multiple
> > registers) in rtl.
>
> And what about link/unlink?
Why not represent them with what the do:
(define_insn "link"
[(set (mem:SI (pre_dec:SI (reg:SI 15)) (match_operand:SI 0 "address_operand" "a")))
(set (match_dup 0) (reg:SI 15))
(set (reg:SI 15) (add:SI (reg:SI 15) (match_operand:SI 1 "const_int_operand" "n")))]
""
"link%.w %0,%1")
(define_insn "unlk"
[(set (reg:SI 15) (match_operand:SI 0 "address_operand" "a"))
(set (match_dup 0) (mem:SI (post_inc:SI (reg:SI 15))))]
""
"unlk %0")
--
Peter Barada Peter.Barada@motorola.com
Wizard 781-852-2768 (direct)
WaveMark Solutions(A Motorola Company) 781-270-0193 (fax)