This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: how to add new instruction
ok. the new rtl definition is like:
DEF_RTL_EXPR(NEWINSN, "newinsn", "ei", 'x'), i use "ei" here, because
the first operand is real type, and the second one is int type.
in i386.md, i added a defin_insn section just like:
(define_insn "newinsnsf"
[(set (match_operand:SF 0 "general_operand" "")
(newinsn:SF (match_operand:SF 1 "general_operand" "")
(match_operand:SI 2 "const_int_operand" "")))
(clobber (reg:CC 17))]
""
"newinsn\\t{%2, %0|%0, %2}"
[(set_attr "type" "other")
(set_attr "mode" "SF")])
it turns out an error saying "missing name or number" before line
--(match_operand:SI 2 "const_int_operand" ""))). it seems newinsn is
not recognized.
however, when i changed the "ei" in rtl definition to "ee", it works
well. i don't know why? what's the problem with "ei"?
On Fri, 14 Jan 2005 17:56:14 -0800, James E Wilson
<wilson@specifixinc.com> wrote:
> apollo wrote:
> > i'm afraid so. i add a new rtl expression in rtl.def. and when i add a
> > new define_insn
> > section in i386.md, it said the instruction is undefined.
>
> You need to be much more explicit about what happened here if you want
> help. You need to give the exact error you got, the exact command that
> was used to produce it, the exact change you made to the i386.md file, etc.
> --
> Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
>