Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Native build failure...
On Mon, 26 Jul 2010, Johnny Billquist wrote:
Interesting. And that might be relevant...
Anyway, after some more fiddling, I managed to get gdb to give a lot more
useful information...
...
#0 update_file (file=0x7f44b6a0, depth=18, 2135209632, 18)
at /usr/src/tools/gmake/../../gnu/dist/gmake/remake.c:464
464 if (! d->ignore_mtime)
That looks rather familiar :)
It should correspond to the blbs instruction.
(gdb) print/x $r6
$2 = 0x7f5ffff0
And that would look like an address at the end of a page, with the
likelyhood that 0x7f600000 is not allocated.
Anything else I can do that will help?
I'm fairly sure that the workaround I had in the message I posted last
year would still work.
According to that rather vague memory of mine, I think that Matt had
sent me a fix for this, but I've had trouble finding it. I did find the
following change that I had on one of my build systems that looks like
it's probably the fix. You could try it and see.
Index: gnu/dist/gcc4/gcc/config/vax/vax.md
===================================================================
RCS file: /cvsroot/src/gnu/dist/gcc4/gcc/config/vax/vax.md,v
retrieving revision 1.12
diff -u -p -r1.12 vax.md
--- gnu/dist/gcc4/gcc/config/vax/vax.md 20 Apr 2007 16:30:32 -0000 1.12
+++ gnu/dist/gcc4/gcc/config/vax/vax.md 26 Jul 2010 22:02:24 -0000
@@ -1129,6 +1129,30 @@
(define_insn ""
[(set (pc)
(if_then_else
+ (ne (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q")
+ (const_int 1)
+ (const_int 0))
+ (const_int 0))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))]
+ "REG_P (XEXP (operands[0], 0)) || MEM_P (XEXP (operands[0], 0))"
+ "jlbs %0,%l1")
+
+(define_insn ""
+ [(set (pc)
+ (if_then_else
+ (eq (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q")
+ (const_int 1)
+ (const_int 0))
+ (const_int 0))
+ (label_ref (match_operand 1 "" ""))
+ (pc)))]
+ "REG_P (XEXP (operands[0], 0)) || MEM_P (XEXP (operands[0], 0))"
+ "jlbc %0,%l1")
+
+(define_insn ""
+ [(set (pc)
+ (if_then_else
(ne (zero_extract:SI (match_operand:QI 0 "memory_operand" "Q,g")
(const_int 1)
(match_operand:SI 1 "general_operand" "I,nrmT"))
@@ -1136,9 +1160,26 @@
(label_ref (match_operand 2 "" ""))
(pc)))]
""
- "@
- jlbs %0,%l2
- jbs %1,%0,%l2")
+ "*
+{
+ if (which_alternative == 0
+ && MEM_P (operands[0])
+ && GET_CODE (XEXP (operands[0], 0)) == PLUS
+ && REG_P (XEXP (XEXP (operands[0], 0), 0))
+ && CONST_INT_P (XEXP (XEXP (operands[0], 0), 1))
+ && (INTVAL (XEXP (XEXP (operands[0], 0), 1)) >> 2) == 0)
+ {
+ HOST_WIDE_INT o = INTVAL (XEXP (XEXP (operands[0], 0), 1));
+
+ if (o == 0)
+ return \"jlbs %0,%l2\";
+
+ operands[0] = gen_rtx_MEM (QImode, XEXP (XEXP (operands[0], 0), 0));
+ operands[1] = GEN_INT (o % 4 * 8);
+ }
+
+ return \"jbs %1,%0,%l2\";
+}")
(define_insn ""
[(set (pc)
@@ -1150,9 +1191,26 @@
(label_ref (match_operand 2 "" ""))
(pc)))]
""
- "@
- jlbc %0,%l2
- jbc %1,%0,%l2")
+ "*
+{
+ if (which_alternative == 0
+ && MEM_P (operands[0])
+ && GET_CODE (XEXP (operands[0], 0)) == PLUS
+ && REG_P (XEXP (XEXP (operands[0], 0), 0))
+ && CONST_INT_P (XEXP (XEXP (operands[0], 0), 1))
+ && (INTVAL (XEXP (XEXP (operands[0], 0), 1)) >> 2) == 0)
+ {
+ HOST_WIDE_INT o = INTVAL (XEXP (XEXP (operands[0], 0), 1));
+
+ if (o % 4 == 0)
+ return \"jlbc %0,%l2\";
+
+ operands[0] = gen_rtx_MEM (QImode, XEXP (XEXP (operands[0], 0), 0));
+ operands[1] = GEN_INT (o % 4 * 8);
+ }
+
+ return \"jbc %1,%0,%l2\";
+}")
(define_insn ""
[(set (pc)
--
Michael L. Hitch mhitch%montana.edu@localhost
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA
Home |
Main Index |
Thread Index |
Old Index