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?