summaryrefslogtreecommitdiff
path: root/gcc/config/c6x/c6x-mult.md
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-21 11:54:25 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-21 11:54:25 +0000
commit9a4c7d5b39165d5d04021e1e41ca16e0d75aa553 (patch)
treeeee257e4cbc3182a7bd60dc290de7fe4f3cbea3b /gcc/config/c6x/c6x-mult.md
parente3a0dde2af4f9437f45dd6e296e8969c2a478542 (diff)
downloadgcc-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.md4
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"