Module Name: src Committed By: martin Date: Mon Apr 8 12:10:54 UTC 2013
Modified Files: src/external/gpl3/gcc/dist/gcc/config/vax: vax.c vax.md src/gnu/dist/gcc4/gcc/config/vax: vax.c vax.md Log Message: Fix "ashq" second argument sign extension (the assembler does not treat -1 as a 64bit value). Upstream reported as http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56875 Problemm noted by Jonny Billquist (in lint), hint for solution from mouse. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/external/gpl3/gcc/dist/gcc/config/vax/vax.c cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/gcc/dist/gcc/config/vax/vax.md cvs rdiff -u -r1.18 -r1.19 src/gnu/dist/gcc4/gcc/config/vax/vax.c cvs rdiff -u -r1.16 -r1.17 src/gnu/dist/gcc4/gcc/config/vax/vax.md 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/vax.c diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.2 src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.3 --- src/external/gpl3/gcc/dist/gcc/config/vax/vax.c:1.2 Sun Feb 5 17:38:21 2012 +++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.c Mon Apr 8 12:10:53 2013 @@ -1153,7 +1153,7 @@ vax_output_int_move (rtx insn ATTRIBUTE_ { operands[1] = GEN_INT (lval); operands[2] = GEN_INT (n); - return "ashq %2,%1,%0"; + return "ashq %2,%D1,%0"; } #if HOST_BITS_PER_WIDE_INT == 32 } @@ -1165,7 +1165,7 @@ vax_output_int_move (rtx insn ATTRIBUTE_ { operands[1] = GEN_INT (hval >> n); operands[2] = GEN_INT (n + 32); - return "ashq %2,%1,%0"; + return "ashq %2,%D1,%0"; #endif } } Index: src/external/gpl3/gcc/dist/gcc/config/vax/vax.md diff -u src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.3 src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.4 --- src/external/gpl3/gcc/dist/gcc/config/vax/vax.md:1.3 Sun Feb 5 17:38:21 2012 +++ src/external/gpl3/gcc/dist/gcc/config/vax/vax.md Mon Apr 8 12:10:54 2013 @@ -701,14 +701,14 @@ (ashift:DI (match_operand:DI 1 "general_operand" "g") (match_operand:QI 2 "general_operand" "g")))] "" - "ashq %2,%1,%0") + "ashq %2,%D1,%0") (define_insn "" [(set (match_operand:DI 0 "nonimmediate_operand" "=g") (ashiftrt:DI (match_operand:DI 1 "general_operand" "g") (neg:QI (match_operand:QI 2 "general_operand" "g"))))] "" - "ashq %2,%1,%0") + "ashq %2,%D1,%0") ;; We used to have expand_shift handle logical right shifts by using extzv, ;; but this make it very difficult to do lshrdi3. Since the VAX is the Index: src/gnu/dist/gcc4/gcc/config/vax/vax.c diff -u src/gnu/dist/gcc4/gcc/config/vax/vax.c:1.18 src/gnu/dist/gcc4/gcc/config/vax/vax.c:1.19 --- src/gnu/dist/gcc4/gcc/config/vax/vax.c:1.18 Sun Feb 5 17:34:34 2012 +++ src/gnu/dist/gcc4/gcc/config/vax/vax.c Mon Apr 8 12:10:53 2013 @@ -1075,7 +1075,7 @@ vax_output_int_move (rtx insn ATTRIBUTE_ { operands[1] = GEN_INT (lval); operands[2] = GEN_INT (n); - return "ashq %2,%1,%0"; + return "ashq %2,%D1,%0"; } #if HOST_BITS_PER_WIDE_INT == 32 } @@ -1087,7 +1087,7 @@ vax_output_int_move (rtx insn ATTRIBUTE_ { operands[1] = GEN_INT (hval >> n); operands[2] = GEN_INT (n + 32); - return "ashq %2,%1,%0"; + return "ashq %2,%D1,%0"; #endif } } Index: src/gnu/dist/gcc4/gcc/config/vax/vax.md diff -u src/gnu/dist/gcc4/gcc/config/vax/vax.md:1.16 src/gnu/dist/gcc4/gcc/config/vax/vax.md:1.17 --- src/gnu/dist/gcc4/gcc/config/vax/vax.md:1.16 Mon Jul 16 17:39:29 2012 +++ src/gnu/dist/gcc4/gcc/config/vax/vax.md Mon Apr 8 12:10:53 2013 @@ -724,14 +724,14 @@ (ashift:DI (match_operand:DI 1 "general_operand" "g") (match_operand:QI 2 "general_operand" "g")))] "" - "ashq %2,%1,%0") + "ashq %2,%D1,%0") (define_insn "" [(set (match_operand:DI 0 "nonimmediate_operand" "=g") (ashiftrt:DI (match_operand:DI 1 "general_operand" "g") (neg:QI (match_operand:QI 2 "general_operand" "g"))))] "" - "ashq %2,%1,%0") + "ashq %2,%D1,%0") ;; We used to have expand_shift handle logical right shifts by using extzv, ;; but this make it very difficult to do lshrdi3. Since the VAX is the