This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]