lkml.org 
[lkml]   [2000]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Compilation failure on Alpha with test8-pre[2-6]
On Fri, Sep 08, 2000 at 04:19:25AM -0400, Christopher C. Chimelis wrote:
> xor.c: In function `xor_block_alpha':
> xor.c:1791: inconsistent operand constraints in an `asm'
> xor.c: In function `xor_block_alpha_prefetch':
> xor.c:2213: inconsistent operand constraints in an `asm'
>
Yes, I can reproduce this with gcc-2.95.2 (compiles cleanly with 2.96).
Looks like older gcc doesn't like when output operand 5 listed
also as input. Hmm.
Simple swapping operands 4 and 5 makes gcc happy.

Ivan.

--- 2.4.0p8t5/drivers/block/xor.c Wed Sep 6 11:57:49 2000
+++ linux/drivers/block/xor.c Fri Sep 8 16:20:27 2000
@@ -1667,12 +1667,12 @@
ldq %1,8(%6)
ldq %2,16(%6)
ldq %3,24(%6)
- ldq %4,32(%6)
+ ldq %5,32(%6)
ldq %0,%7(%0)
ldq %1,%7(%1)
ldq %2,%7(%2)
ldq %3,%7(%3)
- ldq %4,%7(%4)
+ ldq %5,%7(%5)
.align 4
5:
ldq $0,0(%0)
@@ -1680,13 +1680,13 @@
ldq $2,0(%2)
ldq $3,0(%3)

- ldq $4,0(%4)
+ ldq $4,0(%5)
ldq $5,8(%0)
ldq $6,8(%1)
ldq $7,8(%2)

ldq $16,8(%3)
- ldq $17,8(%4)
+ ldq $17,8(%5)
ldq $18,16(%0)
ldq $19,16(%1)

@@ -1695,7 +1695,7 @@
ldq $21,16(%3)
xor $2,$3,$3 # 6 cycles from $3 load

- ldq $0,16(%4)
+ ldq $0,16(%5)
xor $1,$3,$3
ldq $1,24(%0)
xor $3,$4,$4 # 7 cycles from $4 load
@@ -1715,7 +1715,7 @@
ldq $4,24(%3)
xor $21,$0,$0 # 7 cycles from $0 load

- ldq $5,24(%4)
+ ldq $5,24(%5)
xor $20,$0,$0
ldq $6,32(%0)
ldq $7,32(%1)
@@ -1727,7 +1727,7 @@

ldq $17,32(%3)
xor $2,$4,$4
- ldq $18,32(%4)
+ ldq $18,32(%5)
ldq $19,40(%0)

ldq $20,40(%1)
@@ -1737,7 +1737,7 @@

stq $5,24(%0)
xor $6,$7,$7 # 7 cycles from $7 load
- ldq $1,40(%4)
+ ldq $1,40(%5)
ldq $2,48(%0)

ldq $3,48(%1)
@@ -1747,7 +1747,7 @@

ldq $5,48(%3)
xor $16,$18,$18
- ldq $6,48(%4)
+ ldq $6,48(%5)
xor $19,$20,$20 # 7 cycles from $20 load

stq $18,32(%0)
@@ -1758,7 +1758,7 @@
ldq $16,56(%1)
ldq $17,56(%2)
ldq $18,56(%3)
- ldq $19,56(%4)
+ ldq $19,56(%5)

xor $21,$1,$1
xor $2,$3,$3 # 9 cycles from $3 load
@@ -1772,21 +1772,21 @@

stq $6,48(%0)
xor $16,$18,$18
- subq %5,1,%5
+ subq %4,1,%4
xor $18,$19,$19 # 8 cycles from $19 load

stq $19,56(%0)
- addq %4,64,%4
+ addq %5,64,%5
addq %3,64,%3
addq %2,64,%2

addq %1,64,%1
addq %0,64,%0
- bgt %5,5b"
- : "=&r"(d), "=&r"(s1), "=&r"(s2), "=&r"(s3), "=r"(s4), "=r"(lines)
+ bgt %4,5b"
+ : "=&r"(d), "=&r"(s1), "=&r"(s2), "=&r"(s3), "=r"(lines), "=r"(s4)
/* ARG! We've run out of asm arguments! We've got to reload
all those pointers we just loaded. */
- : "r"(bh_ptr), "i" (&((struct buffer_head *)0)->b_data), "5"(lines)
+ : "r"(bh_ptr), "i" (&((struct buffer_head *)0)->b_data), "4"(lines)
: "memory", "$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7",
"$16", "$17", "$18", "$19", "$20", "$21");
return;
@@ -2084,12 +2084,12 @@
ldq %1,8(%6)
ldq %2,16(%6)
ldq %3,24(%6)
- ldq %4,32(%6)
+ ldq %5,32(%6)
ldq %0,%7(%0)
ldq %1,%7(%1)
ldq %2,%7(%2)
ldq %3,%7(%3)
- ldq %4,%7(%4)
+ ldq %5,%7(%5)
.align 4
5:
ldq $0,0(%0)
@@ -2097,13 +2097,13 @@
ldq $2,0(%2)
ldq $3,0(%3)

- ldq $4,0(%4)
+ ldq $4,0(%5)
ldq $5,8(%0)
ldq $6,8(%1)
ldq $7,8(%2)

ldq $16,8(%3)
- ldq $17,8(%4)
+ ldq $17,8(%5)
ldq $18,16(%0)
ldq $19,16(%1)

@@ -2112,7 +2112,7 @@
ldq $21,16(%3)
xor $2,$3,$3 # 6 cycles from $3 load

- ldq $0,16(%4)
+ ldq $0,16(%5)
xor $1,$3,$3
ldq $1,24(%0)
xor $3,$4,$4 # 7 cycles from $4 load
@@ -2132,7 +2132,7 @@
ldq $4,24(%3)
xor $21,$0,$0 # 7 cycles from $0 load

- ldq $5,24(%4)
+ ldq $5,24(%5)
xor $20,$0,$0
ldq $6,32(%0)
ldq $7,32(%1)
@@ -2144,7 +2144,7 @@

ldq $17,32(%3)
xor $2,$4,$4
- ldq $18,32(%4)
+ ldq $18,32(%5)
ldq $19,40(%0)

ldq $20,40(%1)
@@ -2154,7 +2154,7 @@

stq $5,24(%0)
xor $6,$7,$7 # 7 cycles from $7 load
- ldq $1,40(%4)
+ ldq $1,40(%5)
ldq $2,48(%0)

ldq $3,48(%1)
@@ -2164,7 +2164,7 @@

ldq $5,48(%3)
xor $16,$18,$18
- ldq $6,48(%4)
+ ldq $6,48(%5)
xor $19,$20,$20 # 7 cycles from $20 load

stq $18,32(%0)
@@ -2175,7 +2175,7 @@
ldq $16,56(%1)
ldq $17,56(%2)
ldq $18,56(%3)
- ldq $19,56(%4)
+ ldq $19,56(%5)

ldq $31,256(%0)
xor $21,$1,$1
@@ -2187,28 +2187,28 @@
ldq $31,256(%3)
xor $5,$6,$6 # 8 cycles from $6 load

- ldq $31,256(%4)
+ ldq $31,256(%5)
xor $4,$6,$6
xor $7,$16,$16 # 7 cycles from $16 load
xor $17,$18,$18 # 6 cycles from $18 load

stq $6,48(%0)
xor $16,$18,$18
- subq %5,1,%5
+ subq %4,1,%4
xor $18,$19,$19 # 8 cycles from $19 load

stq $19,56(%0)
- addq %4,64,%4
+ addq %5,64,%5
addq %3,64,%3
addq %2,64,%2

addq %1,64,%1
addq %0,64,%0
- bgt %5,5b"
- : "=&r"(d), "=&r"(s1), "=&r"(s2), "=&r"(s3), "=r"(s4), "=r"(lines)
+ bgt %4,5b"
+ : "=&r"(d), "=&r"(s1), "=&r"(s2), "=&r"(s3), "=r"(lines), "=r"(s4)
/* ARG! We've run out of asm arguments! We've got to reload
all those pointers we just loaded. */
- : "r"(bh_ptr), "i" (&((struct buffer_head *)0)->b_data), "5"(lines)
+ : "r"(bh_ptr), "i" (&((struct buffer_head *)0)->b_data), "4"(lines)
: "memory", "$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7",
"$16", "$17", "$18", "$19", "$20", "$21");
return;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:38    [W:0.088 / U:0.660 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site