Patchwork [MIPS,committed] Fix compile/20001226-1.c for MIPS16

login
register
mail settings
Submitter Richard Sandiford
Date May 19, 2013, 9:58 a.m.
Message ID <87y5bbp9ye.fsf@talisman.default>
Download mbox | patch
Permalink /patch/244797/
State New
Headers show

Comments

Richard Sandiford - May 19, 2013, 9:58 a.m.
gcc.c-torture/compile/20001226-1.c started failing for MIPS16 after
the microMIPS patch.  This was because the patch added a new check of
"extended_mips16" at the top of the "length" attribute, before the
check for branch lengths, and because "extended_mips16" was still set
to "yes" for branch instructions.  However, it was really my fault
for not removing the branch check from extended_mips16 when adding
the long branch support.

Fixed as follows.  Tested on mipsisa32-sde-elf and applied.

Richard


gcc/
	* config/mips/mips.md (extended_mips16): Remove branch case.
	(length): Remove duplicated extended_mips16 test.

Patch

Index: gcc/config/mips/mips.md
===================================================================
--- gcc/config/mips/mips.md	2013-05-19 10:57:13.399153082 +0100
+++ gcc/config/mips/mips.md	2013-05-19 10:57:24.039233504 +0100
@@ -407,7 +407,6 @@  (define_attr "cnv_mode" "unknown,I2S,I2D
 ;; Is this an extended instruction in mips16 mode?
 (define_attr "extended_mips16" "no,yes"
   (if_then_else (ior (eq_attr "move_type" "sll0")
-		     (eq_attr "type" "branch")
 		     (eq_attr "jal" "direct"))
 		(const_string "yes")
 		(const_string "no")))
@@ -586,10 +585,6 @@  (define_attr "length" ""
 		 (const_int 32)
 		 ] (const_int 48))
 
-	  (and (eq_attr "extended_mips16" "yes")
-	       (match_test "TARGET_MIPS16"))
-	  (const_int 8)
-
 	  ;; "Ghost" instructions occupy no space.
 	  (eq_attr "type" "ghost")
 	  (const_int 0)