[parisc-linux-cvs] devel gcc fixes

Alan Modra alan@linuxcare.com.au
Tue, 13 Feb 2001 13:21:31 +1100 (EST)


A couple of fixes.  The makefile change stops an x86 object being 
included when cross-compiling a native hppa-linux gcc.  ie.
--build=i686-linux --host=hppa-linux --target=hppa-linux

The pa change fixes "unaligned access" crash on this rtl.

(insn 107 105 109 (parallel[ 
            (asm_operands/v ("ssm %0,%%r0") ("") 0
                [ 
                    (const_int 1 [0x1])
                ] 
                [ 
                    (asm_input:SI ("i"))
                ]  ("init/main.c") 571)
            (clobber (mem:BLK (scratch) 0))
        ] ) -1 (insn_list 105 (nil))
    (nil))


gcc/ChangeLog
	* Makefile.in (OBJS): Remove hashtab.o

	* config/pa/pa.c (pa_adjust_insn_length): Check that block move
	pattern is a set before looking at operands.

Index: Makefile.in
===================================================================
RCS file: /home/cvs/parisc/gcc/gcc/Makefile.in,v
retrieving revision 1.1.1.4.2.5
diff -u -p -r1.1.1.4.2.5 Makefile.in
--- Makefile.in	2001/02/10 02:58:12	1.1.1.4.2.5
+++ Makefile.in	2001/02/13 01:16:08
@@ -750,7 +750,7 @@ OBJS = diagnostic.o version.o tree.o pri
  mbchar.o splay-tree.o graph.o sbitmap.o resource.o hash.o predict.o	      \
  lists.o ggc-common.o $(GGC) stringpool.o simplify-rtx.o ssa.o bb-reorder.o   \
  sibcall.o conflict.o timevar.o ifcvt.o dominance.o dependence.o dce.o \
- sched-vis.o sched-deps.o sched-rgn.o sched-ebb.o hashtab.o
+ sched-vis.o sched-deps.o sched-rgn.o sched-ebb.o
 
 BACKEND = toplev.o libbackend.a
 
Index: config/pa/pa.c
===================================================================
RCS file: /home/cvs/parisc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.1.1.4.2.12
diff -u -p -r1.1.1.4.2.12 pa.c
--- pa.c	2001/02/09 04:13:46	1.1.1.4.2.12
+++ pa.c	2001/02/13 01:16:32
@@ -3988,6 +3988,7 @@ pa_adjust_insn_length (insn, length)
   /* Block move pattern.  */
   else if (GET_CODE (insn) == INSN
 	   && GET_CODE (pat) == PARALLEL
+	   && GET_CODE (XVECEXP (pat, 0, 0)) == SET
 	   && GET_CODE (XEXP (XVECEXP (pat, 0, 0), 0)) == MEM
 	   && GET_CODE (XEXP (XVECEXP (pat, 0, 0), 1)) == MEM
 	   && GET_MODE (XEXP (XVECEXP (pat, 0, 0), 0)) == BLKmode