Module Name:    src
Committed By:   martin
Date:           Wed Aug 20 13:49:28 UTC 2014

Modified Files:
        src/external/gpl3/gcc/dist/gcc/config/vax [netbsd-7]: builtins.md vax.c
        src/lib/libc/compiler_rt [netbsd-7]: Makefile.inc
        src/libexec/ld.elf_so/arch/vax [netbsd-7]: rtld_start.S

Log Message:
Pullup the following to netbsd-7  (requested by matt in ticket #37):
external/gpl3/gcc/dist/gcc/config/vax/builtins.md 1.4
external/gpl3/gcc/dist/gcc/config/vax/vax.c     1.10
        Rework so that the ctzsi builtin is supported.

lib/libc/compiler_rt/Makefile.inc               1.26
        VAX does need __clzsi2

libexec/ld.elf_so/arch/vax/rtld_start.S         1.23
libexec/ld.elf_so/arch/vax/rtld_start.S         1.24
        add a missing register prefix.
        Add proper registers for register counts.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.3.4.1 \
    src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md
cvs rdiff -u -r1.9 -r1.9.2.1 src/external/gpl3/gcc/dist/gcc/config/vax/vax.c
cvs rdiff -u -r1.24 -r1.24.2.1 src/lib/libc/compiler_rt/Makefile.inc
cvs rdiff -u -r1.22 -r1.22.4.1 src/libexec/ld.elf_so/arch/vax/rtld_start.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md:1.3 src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md:1.3.4.1
--- src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md:1.3	Sat Mar  1 08:58:33 2014
+++ src/external/gpl3/gcc/dist/gcc/config/vax/builtins.md	Wed Aug 20 13:49:28 2014
@@ -37,17 +37,17 @@
   "
 {
   rtx label = gen_label_rtx ();
-  emit_insn (gen_ffssi2_internal (operands[0], operands[1]));
+  emit_insn (gen_ctzsi2 (operands[0], operands[1]));
   emit_jump_insn (gen_condjump (gen_rtx_NE(VOIDmode, cc0_rtx, const0_rtx), label));
-  emit_insn (gen_negsi2 (operands[0], const1_rtx));
+  emit_move_insn (operands[0], constm1_rtx);
   emit_label (label);
   emit_insn (gen_addsi3 (operands[0], operands[0], const1_rtx));
   DONE;
 }")
 
-(define_insn "ffssi2_internal"
+(define_insn "ctzsi2"
   [(set (match_operand:SI 0 "nonimmediate_operand" "=rQ")
-	(ffs:SI (match_operand:SI 1 "general_operand" "nrmT")))
+	(ctz:SI (match_operand:SI 1 "general_operand" "nrmT")))
    (set (cc0) (match_dup 0))]
   ""
   "ffs $0,$32,%1,%0")

Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.c
diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.9 src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.9.2.1
--- src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.9	Wed Jun  4 16:11:32 2014
+++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.c	Wed Aug 20 13:49:28 2014
@@ -1117,6 +1117,7 @@ vax_notice_update_cc (rtx exp, rtx insn 
 	    case IOR:
 	    case XOR:
 	    case NOT:
+	    case CTZ:
 	    case MEM:
 	    case REG:
 	      cc_status.flags = CC_NO_OVERFLOW;

Index: src/lib/libc/compiler_rt/Makefile.inc
diff -u src/lib/libc/compiler_rt/Makefile.inc:1.24 src/lib/libc/compiler_rt/Makefile.inc:1.24.2.1
--- src/lib/libc/compiler_rt/Makefile.inc:1.24	Sun Aug 10 23:39:08 2014
+++ src/lib/libc/compiler_rt/Makefile.inc	Wed Aug 20 13:49:28 2014
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.24 2014/08/10 23:39:08 matt Exp $
+# $NetBSD: Makefile.inc,v 1.24.2.1 2014/08/20 13:49:28 martin Exp $
 
 COMPILER_RT_SRCDIR=	${NETBSDSRCDIR}/sys/external/bsd/compiler_rt/dist
 
@@ -136,9 +136,15 @@ GENERIC_SRCS+= \
 
 # These have h/w instructions which are always used.
 .if ${LIBC_MACHINE_ARCH} != "alpha" && ${LIBC_MACHINE_CPU} != "powerpc" \
+    && ${LIBC_MACHINE_CPU} != "aarch64"
+GENERIC_SRCS+= \
+	clzsi2.c
+.endif
+
+# These have h/w instructions which are always used.
+.if ${LIBC_MACHINE_ARCH} != "alpha" && ${LIBC_MACHINE_CPU} != "powerpc" \
     && ${LIBC_MACHINE_CPU} != "aarch64" && ${LIBC_MACHINE_ARCH} != "vax"
 GENERIC_SRCS+= \
-	clzsi2.c \
 	ctzsi2.c \
 	divmodsi4.c \
 	divsi3.c \

Index: src/libexec/ld.elf_so/arch/vax/rtld_start.S
diff -u src/libexec/ld.elf_so/arch/vax/rtld_start.S:1.22 src/libexec/ld.elf_so/arch/vax/rtld_start.S:1.22.4.1
--- src/libexec/ld.elf_so/arch/vax/rtld_start.S:1.22	Sat Mar 22 15:13:10 2014
+++ src/libexec/ld.elf_so/arch/vax/rtld_start.S	Wed Aug 20 13:49:28 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtld_start.S,v 1.22 2014/03/22 15:13:10 matt Exp $	*/
+/*	$NetBSD: rtld_start.S,v 1.22.4.1 2014/08/20 13:49:28 martin Exp $	*/
 
 /*
  * Copyright 1996 Matt Thomas <m...@3am-software.com>
@@ -152,7 +152,7 @@ ALTENTRY(_rtld_bind_start)
 	extzv	%r2,$4,%r3,%r5	/* extract count */
 	movq	4(%fp),%r2	/* fetch callframe status & saved AP */
 	insv	%r1,$16,$12,%r2	/* update save mask */
-	addl3	%r3,r4,%r1	/* add counts and discard them */
+	addl3	%r4,%r5,%r1	/* add counts and discard them */
 	movq	12(%fp),%r4	/* fetch callframe saved FP & PC */
 	moval	20(%fp)[%r1],%sp/* pop callframe */
 	extzv	$16,$12,%r2,%r1	/* get save mask back */

Reply via email to