This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Some small alpha.md fixes


Hi,

The point of the zero extension argument reordering is to match the
"sextl" pseudo-op, looks nicer in disassembly. Well, probably not
really important, but the other three fix real bugs.

BTW, I ran make check, and got failures on
gcc.c-torture/compile/20001226-1.c, gcc.c-torture/compile/simd-5.c,
and gcc.dg/noncompile/incomplete-1.c (unrelated to this patch,
though). Should I report this, or does somebody regularly run make
check on Alpha anyway?

-- 
	Falk

2002-10-13  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>

	* config/alpha/alpha.md (extendsidi2_nofix, extendsidi2_fix):
          Swap zero extension arguments.
          (umaxhi3): Fix instruction class.
          PR target/7211
          (prefetch): Fix prefetch instructions.
          PR target/7238
          (pkwb): Fix output constraint.

Index: alpha.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v
retrieving revision 1.198
diff -u -r1.198 alpha.md
--- alpha.md	17 Sep 2002 23:10:02 -0000	1.198
+++ alpha.md	12 Oct 2002 23:50:28 -0000
@@ -171,7 +171,7 @@
 	  (match_operand:SI 1 "nonimmediate_operand" "r,m,*f,m")))]
   "! TARGET_FIX"
   "@
-   addl %1,$31,%0
+   addl $31,%1,%0
    ldl %0,%1
    cvtlq %1,%0
    lds %0,%1\;cvtlq %0,%0"
@@ -184,7 +184,7 @@
 	  (match_operand:SI 1 "nonimmediate_operand" "r,m,*f,*f,m")))]
   "TARGET_FIX"
   "@
-   addl %1,$31,%0
+   addl $31,%1,%0
    ldl %0,%1
    ftois %1,%0
    cvtlq %1,%0
@@ -3222,7 +3222,7 @@
 		 (match_operand:HI 2 "reg_or_8bit_operand" "rI")))]
   "TARGET_MAX"
   "maxuw4 %r1,%2,%0"
-  [(set_attr "type" "shift")])
+  [(set_attr "type" "mvi")])
 
 (define_expand "smaxdi3"
   [(set (match_dup 3)
@@ -6934,12 +6934,12 @@
      and leave the LRU eviction counter pointing to that block.  */
   static const char * const alt[2][2] = {
     { 
-      "lds $f31,%a0",		/* read, evict next */
+      "ldq $31,%a0",		/* read, evict next */
       "ldl $31,%a0",		/* read, evict last */
     },
     {
       "ldt $f31,%a0",		/* write, evict next */
-      "ldq $31,%a0",		/* write, evict last */
+      "lds $f31,%a0",		/* write, evict last */
     }
   };
 
@@ -7596,7 +7596,7 @@
 })
 
 (define_insn "*pkwb"
-  [(set (match_operand:V8QI 0 "register_operand" "")
+  [(set (match_operand:V8QI 0 "register_operand" "=r")
 	(vec_concat:V8QI
 	  (truncate:V4QI (match_operand:V4HI 1 "register_operand" ""))
 	  (match_operand:V4QI 2 "const0_operand" "")))]


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]