[Patch] Fix instruction length of jcc_fused

H.J. Lu hjl.tools@gmail.com
Fri Sep 19 07:03:00 GMT 2008


On Thu, Sep 18, 2008 at 5:52 PM, Ye, Joey <joey.ye@intel.com> wrote:
> Oops, this patch needn't core2.md.
>
> Index: i386.md
> ===================================================================
> --- i386.md     (revision 3923)
> +++ i386.md     (working copy)
> @@ -421,6 +421,9 @@
>         ]
>         (const_int 1)))
>
> +(define_attr "length_jcc_fuse" ""
> +  (const_int 0))
> +
>  ;; The (bounding maximum) length of an instruction in bytes.
>  ;; ??? fistp and frndint are in fact fldcw/{fistp,frndint}/fldcw
> sequences.
>  ;; Later we may want to split them and compute proper length as for
> @@ -442,7 +445,8 @@
>               (plus (attr "prefix_rep")
>                     (plus (attr "prefix_data16")
>                           (plus (attr "length_immediate")
> -                                (attr "length_address")))))))
> +                                (plus (attr "length_address")
> +                                       (attr "length_jcc_fuse"))))))))
>
>  ;; The `memory' attribute is `none' if no memory is referenced, `load'
> or
>  ;; `store' if there is a simple memory reference therein, or `unknown'
> @@ -14033,7 +14037,8 @@
>   return "test{<imodesuffix>}\t%2, %2\n\t"
>         "%+j%E1\t%l0\t" ASM_COMMENT_START " fused";
>  }
> -  [(set_attr "type" "multi")
> +  [(set_attr "type" "icmp")
> +   (set_attr "length_jcc_fuse" "2")
>    (set_attr "mode" "<MODE>")])
>

Can you set insn length directly without length_jcc_fuse nor changing type
to "icmp"?

-- 
H.J.



More information about the Gcc-patches mailing list