This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bootstrap failure on powerpc64 (mainline)



On Thursday, March 6, 2003, at 06:27 AM, Josef Zlomek wrote:


when I wanted to bootstrap mainline on powerpc64 I got this error:

Funny that this worked on ppc32. Anyway, try this. I'm not done bootstrapping but it looks OK so far.

Index: rs6000.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.md,v
retrieving revision 1.240
diff -u -d -b -w -r1.240 rs6000.md
--- rs6000.md 27 Feb 2003 01:24:06 -0000 1.240
+++ rs6000.md 6 Mar 2003 17:46:50 -0000
@@ -7714,6 +7714,84 @@
{st%U0%U1|stw%U0%U1} %1,%0"
[(set_attr "type" "cr_logical,mtcr,mtcr,mfcr,mfcr,*,*,*,mtjmpr,load,store")
(set_attr "length" "4,4,12,4,8,4,4,4,4,4,4")])
+
+(define_expand "movccuns"
+ [(set (match_operand:CCUNS 0 "nonimmediate_operand" "")
+ (match_operand:CCUNS 1 "nonimmediate_operand" ""))]
+ ""
+ "")
+
+(define_insn "*movccuns_internal1"
+ [(set (match_operand:CCUNS 0 "nonimmediate_operand" "=y,x,?y,r,r,r,r,q,cl,r,m")
+ (match_operand:CCUNS 1 "nonimmediate_operand" "y,r,r,x,y,r,h,r,r,m,r"))]
+ "register_operand (operands[0], CCUNSmode)
+ || register_operand (operands[1], CCUNSmode)"
+ "@
+ mcrf %0,%1
+ mtcrf 128,%1
+ {rlinm|rlwinm} %1,%1,%F0,0xffffffff\;mtcrf %R0,%1\;{rlinm|rlwinm} %1,%1,%f0,0xffffffff
+ mfcr %0
+ mfcr %0\;{rlinm|rlwinm} %0,%0,%f1,0xf0000000
+ mr %0,%1
+ mf%1 %0
+ mt%0 %1
+ mt%0 %1
+ {l%U1%X1|lwz%U1%X1} %0,%1
+ {st%U0%U1|stw%U0%U1} %1,%0"
+ [(set_attr "type" "cr_logical,mtcr,mtcr,mfcr,mfcr,*,*,*,mtjmpr,load,store")
+ (set_attr "length" "4,4,12,4,8,4,4,4,4,4,4")])
+
+(define_expand "movccfp"
+ [(set (match_operand:CCFP 0 "nonimmediate_operand" "")
+ (match_operand:CCFP 1 "nonimmediate_operand" ""))]
+ ""
+ "")
+
+(define_insn "*movccfp_internal1"
+ [(set (match_operand:CCFP 0 "nonimmediate_operand" "=y,x,?y,r,r,r,r,q,cl,r,m")
+ (match_operand:CCFP 1 "nonimmediate_operand" "y,r,r,x,y,r,h,r,r,m,r"))]
+ "register_operand (operands[0], CCFPmode)
+ || register_operand (operands[1], CCFPmode)"
+ "@
+ mcrf %0,%1
+ mtcrf 128,%1
+ {rlinm|rlwinm} %1,%1,%F0,0xffffffff\;mtcrf %R0,%1\;{rlinm|rlwinm} %1,%1,%f0,0xffffffff
+ mfcr %0
+ mfcr %0\;{rlinm|rlwinm} %0,%0,%f1,0xf0000000
+ mr %0,%1
+ mf%1 %0
+ mt%0 %1
+ mt%0 %1
+ {l%U1%X1|lwz%U1%X1} %0,%1
+ {st%U0%U1|stw%U0%U1} %1,%0"
+ [(set_attr "type" "cr_logical,mtcr,mtcr,mfcr,mfcr,*,*,*,mtjmpr,load,store")
+ (set_attr "length" "4,4,12,4,8,4,4,4,4,4,4")])
+
+(define_expand "movcceq"
+ [(set (match_operand:CCEQ 0 "nonimmediate_operand" "")
+ (match_operand:CCEQ 1 "nonimmediate_operand" ""))]
+ ""
+ "")
+
+(define_insn "*movcceq_internal1"
+ [(set (match_operand:CCEQ 0 "nonimmediate_operand" "=y,x,?y,r,r,r,r,q,cl,r,m")
+ (match_operand:CCEQ 1 "nonimmediate_operand" "y,r,r,x,y,r,h,r,r,m,r"))]
+ "register_operand (operands[0], CCEQmode)
+ || register_operand (operands[1], CCEQmode)"
+ "@
+ mcrf %0,%1
+ mtcrf 128,%1
+ {rlinm|rlwinm} %1,%1,%F0,0xffffffff\;mtcrf %R0,%1\;{rlinm|rlwinm} %1,%1,%f0,0xffffffff
+ mfcr %0
+ mfcr %0\;{rlinm|rlwinm} %0,%0,%f1,0xf0000000
+ mr %0,%1
+ mf%1 %0
+ mt%0 %1
+ mt%0 %1
+ {l%U1%X1|lwz%U1%X1} %0,%1
+ {st%U0%U1|stw%U0%U1} %1,%0"
+ [(set_attr "type" "cr_logical,mtcr,mtcr,mfcr,mfcr,*,*,*,mtjmpr,load,store")
+ (set_attr "length" "4,4,12,4,8,4,4,4,4,4,4")])



;; For floating-point, we normally deal with the floating-point registers
;; unless -msoft-float is used. The sole exception is that parameter passing



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]