This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: MSVC hook function prologue
Am Thursday 03 September 2009 00:04:43 schrieb Paolo Bonzini:
> (define_insn "vswapmov"
> [(set (match_operand 0 "register_operand" "0")
> (match_operand 1 "register_operand" "1")
> (unspec_volatile [] UNSPECV_VSWAPMOV)]
I ran into a problem with this: build/genattrtab doesn't like the empty
operand list for the unspec_volatile. So after looking at some other insns I
added a const_int 0. There was also a parenthesis missing, which I added
after the "register_operand" "1"), to close the "set".
(define_insn "vswapmov"
[(set (match_operand 0 "register_operand" "0")
(match_operand 1 "register_operand" "1"))
(unspec_volatile [(const_int 0)] UNSPECV_VSWAPMOV)]
""
"movl.s\t%1,%0"
[(set_attr "length" "2")
(set_attr "length_immediate" "0")
(set_attr "modrm" "0")])
This however leads to the following errors and warnings:
build/genrecog ../.././gcc/config/i386/i386.md \
insn-conditions.md > tmp-recog.c
../.././gcc/config/i386/i386.md:15751: operand 0 missing output reload
../.././gcc/config/i386/i386.md:15751: warning: operand 0 missing mode?
../.././gcc/config/i386/i386.md:15751: warning: operand 1 missing mode?
I guess the error isn't about the const_int 0, but about operand 0. Any ideas?