diff options
author | Maciej W. Rozycki <macro@codesourcery.com> | 2014-11-18 16:52:02 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@gcc.gnu.org> | 2014-11-18 16:52:02 +0000 |
commit | 5d2d755e862d70f29ba26ad71c563de35ec230de (patch) | |
tree | 699648242172eaad1720284cc87c8b92a96cfaaf /gcc/config/mips | |
parent | 73af680eb946cd6e0b97a1fda313d12e0926c8f0 (diff) | |
download | gcc-5d2d755e862d70f29ba26ad71c563de35ec230de.zip gcc-5d2d755e862d70f29ba26ad71c563de35ec230de.tar.gz gcc-5d2d755e862d70f29ba26ad71c563de35ec230de.tar.bz2 |
mips.md (compression): Add `micromips32' setting.
* config/mips/mips.md (compression): Add `micromips32' setting.
(enabled, length): Handle it.
(shift_compression): Replace `micromips' with `micromips32' in
the `compression' attribute.
(*add<mode>3, sub<mode>3): Likewise.
From-SVN: r217728
Diffstat (limited to 'gcc/config/mips')
-rw-r--r-- | gcc/config/mips/mips.md | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 6781a00..65c0a3f 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -429,7 +429,7 @@ (const_string "yes") (const_string "no"))) -(define_attr "compression" "none,all,micromips" +(define_attr "compression" "none,all,micromips32,micromips" (const_string "none")) (define_attr "enabled" "no,yes" @@ -440,7 +440,7 @@ || TARGET_O32_FP64A_ABI") (eq_attr "dword_mode" "yes")) (const_string "no") - (and (eq_attr "compression" "micromips") + (and (eq_attr "compression" "micromips32,micromips") (match_test "!TARGET_MICROMIPS")) (const_string "no")] (const_string "yes"))) @@ -526,7 +526,9 @@ ;; but there are special cases for branches (which must be handled here) ;; and for compressed single instructions. (define_attr "length" "" - (cond [(and (eq_attr "compression" "micromips,all") + (cond [(and (ior (eq_attr "compression" "micromips,all") + (and (eq_attr "compression" "micromips32") + (eq_attr "mode" "SI,SF"))) (eq_attr "dword_mode" "no") (match_test "TARGET_MICROMIPS")) (const_int 2) @@ -979,8 +981,8 @@ (xor "xori") (and "andi")]) -(define_code_attr shift_compression [(ashift "micromips") - (lshiftrt "micromips") +(define_code_attr shift_compression [(ashift "micromips32") + (lshiftrt "micromips32") (ashiftrt "none")]) ;; <fcond> is the c.cond.fmt condition associated with a particular code. @@ -1163,7 +1165,7 @@ return "<d>addiu\t%0,%1,%2"; } [(set_attr "alu_type" "add") - (set_attr "compression" "micromips,*,micromips,micromips,micromips,micromips,*") + (set_attr "compression" "micromips32,*,micromips32,micromips32,micromips32,micromips32,*") (set_attr "mode" "<MODE>")]) (define_insn "*add<mode>3_mips16" @@ -1381,7 +1383,7 @@ "" "<d>subu\t%0,%1,%2" [(set_attr "alu_type" "sub") - (set_attr "compression" "micromips,*") + (set_attr "compression" "micromips32,*") (set_attr "mode" "<MODE>")]) (define_insn "*subsi3_extended" |