diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-21 11:54:25 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-21 11:54:25 +0000 |
commit | 9a4c7d5b39165d5d04021e1e41ca16e0d75aa553 (patch) | |
tree | eee257e4cbc3182a7bd60dc290de7fe4f3cbea3b /gcc/config/c6x/c6x-mult.md | |
parent | e3a0dde2af4f9437f45dd6e296e8969c2a478542 (diff) | |
download | gcc-9a4c7d5b39165d5d04021e1e41ca16e0d75aa553.tar.gz |
* config/c6x/c6x.md (attr "op_pattern"): New.
(load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
* config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
Likewise.
* config/c6x/c6x-mult.md: Regenerate.
* config/c6x/c6x.c: Include "regrename.h".
(unit_req_table): New typedef.
(unit_reqs): Use it for the declaration.
(unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
get_unit_operand_masks, try_rename_operands, reshuffle_units): New
static functions.
(count_unit_reqs): New arg reqs. All callers changed. Use
get_unit_reqs, and don't merge here.
(res_mii): New arg reqs. All callers changed. Rewrite to use a loop
using unit_req_factor.
(hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after
count_unit_reqs.
(c6x_reorg): Add reg notes problem, and call df_analyze.
* Makefile.in ($(out_object_file)): Depend on regrename.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180296 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/c6x/c6x-mult.md')
-rw-r--r-- | gcc/config/c6x/c6x-mult.md | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/c6x/c6x-mult.md b/gcc/config/c6x/c6x-mult.md index ec18ba31a7e..7cf66f1ff4d 100644 --- a/gcc/config/c6x/c6x-mult.md +++ b/gcc/config/c6x/c6x-mult.md @@ -81,6 +81,7 @@ "%|%.\\tmpy\\t%$\\t%2, %1, %0" [(set_attr "type" "mpy2") (set_attr "units" "m") + (set_attr "op_pattern" "sxs") (set_attr "cross" "n,n,y,y")]) (define_insn "mulhisi3_const" @@ -104,6 +105,7 @@ "%|%.\\tmpy\\t%$\\t%1, %2, %0" [(set_attr "type" "mpy2") (set_attr "units" "m") + (set_attr "op_pattern" "ssx") (set_attr "cross" "n,n,y,y")]) (define_insn "mulhisi3_lh" @@ -500,6 +502,7 @@ "%|%.\\tmpy\\t%$\\t%2, %1, %k0" [(set_attr "type" "mpy2") (set_attr "units" "m") + (set_attr "op_pattern" "sxs") (set_attr "cross" "n,n,y,y")]) (define_insn "mulhisi3_const_real" @@ -523,6 +526,7 @@ "%|%.\\tmpy\\t%$\\t%1, %2, %k0" [(set_attr "type" "mpy2") (set_attr "units" "m") + (set_attr "op_pattern" "ssx") (set_attr "cross" "n,n,y,y")]) (define_insn "mulhisi3_lh_real" |