From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20325 invoked by alias); 22 Nov 2002 23:13:20 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 20315 invoked from network); 22 Nov 2002 23:13:18 -0000 Received: from unknown (HELO hiauly1.hia.nrc.ca) (132.246.100.193) by sources.redhat.com with SMTP; 22 Nov 2002 23:13:18 -0000 Received: from hiauly1.hia.nrc.ca (localhost [127.0.0.1]) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) with ESMTP id gAMNDHot007781; Fri, 22 Nov 2002 18:13:17 -0500 (EST) Received: (from dave@localhost) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) id gAMNDGDd007780; Fri, 22 Nov 2002 18:13:16 -0500 (EST) Message-Id: <200211222313.gAMNDGDd007780@hiauly1.hia.nrc.ca> Subject: Re: HP-UX IA64 Patch to fix earlier patch To: dave@hiauly1.hia.nrc.ca (John David Anglin) Date: Sat, 23 Nov 2002 00:26:00 -0000 From: "John David Anglin" Cc: sje@cup.hp.com, gcc@gcc.gnu.org, wilson@redhat.com, law@redhat.com, rth@redhat.com In-Reply-To: from "John David Anglin" at Nov 19, 2002 05:20:31 pm MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2002-11/txt/msg00897.txt.bz2 > > I am working on using the PARALLEL method for IA64 they way you did on > > PA64 so we can get rid of FUNCTION_ARG_REG_LITTLE_ENDIAN and noticed > > that on PA64 you use it in function_arg to handle arguments but there is > > nothing to handle function return values and I think we need it there > > too to handle returns of small structures. > > You are correct, PA64 GCC incorrectly returns small structs. I will > try and see if I can detemine what is wrong with your patch. There is a problem with using the PARALLEL method for function values and sjlj exception handling. After a lot of C++ debugging, I have determined why g++.robertl/eb21.C fails with the patch that I have to return a PARALLEL. The function _ZSt24__uninitialized_copy_auxIN9........ is miscompiled. It returns a small structure in register %r28. The return value is output by expand_value_return at insn 88 followed by a jump to label 162. However, after code_label 162, we have a call to _Unwind_SjLj_Unregister which clobbers the return value %r28. It would also clobber any value in the other return register %r29. The call to _Unwind_SjLj_Unregister obviously has to occur before the return value is copied to the return registers but I am not sure how to do this. I am not sure why this isn't a problem when we don't use a PARALLEL. There is a bug in cfg.c that causes an ICE when dumping rtl. The global max_regno is not always in sync with the number of pseudos. I need to rebuild gcc with this fixed before I can compare what happens without PARALLEL function values. The rtl from the first jump pass is enclosed below. Dave -- J. David Anglin dave.anglin@nrc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6605) begin 640 eb21.jump.gz M'XL(")6PWCT``V5B,C$N:G5M<`#M7'MOW+@1_]^?@@AZ0'QU$I%Z44Y;-(^] MJQ'#R7D=H&U@"/N0[;VNI3U)ZR17]+MWAI)V)2U%2NO5>7/G%#TD*W+F-^2\ M1>KE2_+#,IRDLR@D_@]1_'D43T_2("9).CT^]OUE.`MGZ6PTG_T:3/U)M/CJ MCY9?GOHGX6*9XL`C4OE[B03\R[\:S9/`3[\N@D/RZ?,LO2F-)G^%`=?ATI]\ M^8*LPBB^'TFF,Q@P"^'A8CZ:!/#T[+U_/OAQ2**8A%$(0Q;1+`2R%0YNQH$I M..3/6K"H4.;WP4[)^&NJX^#M<'7*A%VC[V5W:5_065^$S;X(6WT1MOLBO$NK MK!#NS1C=>QFCBG!?-LAW:8,5PGV9'N_+]'A?IL>MOO2-W\OVK!;.G[N]<[B7 MS;3BX.UR_:6!QNO+C+Q=FI$<.NM+.[U=&I0<^RZ#FIS#+J.;G$/OR:?7NPU[ MNXQ[);,)&4-U\I_DB%";!-/K`&N0U^L'Q#@F5[,X M205#0AW[B,Q'\$_&CL@B#N[(,WI$PN`+P(`G4;3PI\$"BCCCB$RB99CB7Z[B MX!=B/#_X$`?3`(`E49P<$S(XNSC_%WD*!>`\O8F7AP?#Y63]E):?%`N2D/GL M+B"C%$JK49P>DZ?A;"Y['(33XN%)>`>UZ90DRUL279%HF5[#*EP#^F@\&L_F M4+O"NAG/C>^JDM.*Y";-!3>=7'`CEYMUE=N"'6J2FI6>$$Z>CL9'H_$$?CD* M;AYF&5A-`=QB';Q\'8K]-[NN`VUT'D=2J2&JQ7%"WV%\S%]3N+&C-H!]$.KLB'2^DXX5T5BZ=TU4ZLR:=\2#B M.54UY68N'Z6%@'8NH-M50%X5T-T[S^1697>M0G9FY[([N>R\J^Q.HXWNA>2\ M(CEC3A&45\')S27WNDKNUN3#I:C^0.LK4%D?KZPFSH.LCE?3BV)UJ%?X;EZD M+$9GHVA2C'M)6LT[ZBE7X;.H8^7XO1S_L\ZYAUW=K<$_3RX>(L\Z.$CCKWZT M@,1U]FO@3ZZN2=9=QY<,].`@;\;C=$Q*"7OV-Y.D$;')U6@V#Z;/#YZ&40J_ M0RH%.2DDNA<#_^1L>.:_'9P.+@9O84VS$?B4$6:Y,/+3>$R,R]+@UZ^&)V_\ MUZ?OW[S#"9DUP5"<9,($H_:'/,5\^VD<7!^_/2$N/3P@^9_B-^:2[V+F'AY" M7IROBWB,?UNQ,`432\G@Q162"/Z\?,0V[>>HP8-XG")/4AT2?/ M'(M\,KY<5?Y,C,M#P$=MC_SW^\7H^>WTV.2V^[]&N!8`MIO!W@:W+VJX`#;P MQ9<[J,=_-LB0DU>.=2E9+PJN^-*R)M(WE23Y\#` MZT9^E-S,KE)P//GRU`?4%L86"V-RH=@*)!Y@H88:RD_`B9>@9/OUTS;[Q83U MT5R_<)LH>27^I<`(^#Q(WYI!_AK$D0_>/QY-LO5)EN-\B4H"$*-QM0JE;[&: M&QON:%P;``P@+@Q_7 MX0`&P7!FJ`TDP\^]!G==#@W59;^97=]DN_CU=AS-P:2O7BS%#T^^/_W3&V#" MGAP>:O0:T2%09JCM3((2MR/C-X]\"-W5#>&>9$.68;(()OCXT\;#U2"E.-)I MEZ"RPJ\5SDPCLI>)K;-GX.T9=8$SZ2IRMN<,'`5WE9$"EP8?CQ[35*JYRU#- MK2(L-?IV#]>+4KX.XXR;S6$<\0KL*NLL2+-=*/)JWT^';U]1E[LM-!EM30#5 MYU\5D$UZ7!^XK1;+9-F%&H.HS@"W5G9NH++;ADK95\)W4W<[0V^U\=R>V:#PC7*491`1 MU>8=\VI$EJ%4)+=KA$VQI0W"4N:H44^=UW#LW@T);[9U= M8CD?C8.5EC-)98$,UL9Q^NKUX!3';2H^SV&T":F>)95ZLU*0FN8&YF9K]#)@ M3!'TFJW1TYABN1A2;::FG$!T`BG;*D!J4-:*(`5.TT";,'1@:0:8J:-BCDU= MCZN-L)2^=G(3@"Q#J0^)13DMVS5-D8WD,U9M(M%&YT&V&OGZ-W8GLJVL=B>N M.G0GL`/IY^"M7`!YF%J,8A@;S&NQ7E#(='%83<'OLB#Y=_]C^'D63OWASZ<_ M^T7[ZTFN>A9Y9;)+I;9F#1C+N#RL+\,\&H^#.-LY8$YAK:AN$,-%KP]:)D&9 MHXBG%7Z7&B?T#WQ)#'6/C$K-$]7FY\SKO:_U),G(JO[49&FB7'2)-II-C7JIU5OG1V/;B-DTFO&J ML.F3N`UXDV6LZDHYK=,!4:Z;Z)Z)24NU^NG[]Q^*.GT230-?Q%`<8V)'V`%[ M5DLM20]@1PQ@,P88PU36$<202]#C,:-[N;*U<0^D2Z]LLB[[J M_@J@0$">!V`4Z@W.@I?3HE(40CYL4V&DFXBXT"PR5-L=61`O`34NYM9K(ZF@B*U`'/J:MYY&WER4\7$T: M`]21C=-"1?,H$)>ICS:\__O,6UWU"(.3#Y25+VD, M4R>[UW$RI/YPA/\=P)_Q^;NSH4_=C9LA)Q?^A0%#AJ]]78Y06]!2GO!M)0I4 M>/Z]212*%S2;NM`YM5@+D^<7>?APAA.$?C#']0Z#U9N*X4D9 M$;&4CG]33<6`5V,H`VD M.\>\>_6=VI>\MI#'-I4(]S*:`68$;TF1]Q7,7LS6X>S=.I[)`E2K`#<-!G=_ ME/CUS1:ZH&.H;+;>BK<-*T`;F3A:#J[9/:QD'!S!Q-W"$[7.OH$ZLN'?H"_A M`KSWZ$M68QY]23^^Q$-E]]E6`&<'+HU'W[GO)"PU3:OAO$'.\G*0G-9\#U?;= MAPO__!W4W8]M^=]3M9VIE2TTJT6"L(5C$N43T`8F+CJF6G?YS?NSB_4128HC MW2V]2[M,!:@#&_<;K'H`,X)_N*IG!XG*8O&8J%3G[V&B`BJ&NM9CT0.TD8F^ MZ'FPY@A@0Y!JG[B?;L(5X.6EV*.;>'03C>.[N@DN=$U>.=_73:P[PL``.'%% MV=30$#:;J1<-8:`*Y#E=)2H<7X_AAV9J:CU6T.5$(0`'$3C7PY<5AIH;/T`6Z7M: MXAO^J\15KV[``#AY1C.;!G6CCOX%!)`%^I2;-66"7_`9LZ`NQ?14IDWX4(QS M8`RJDZ-0)YSQ(L&Q8IH!B342W;C!EQ_-Q!,3JYLQ%*=1`Z%L6^/K[J\8&29J MF$HF>QE?$70F@"4%W_?+=`BL(W\<7,]"?S)*)S>/<7+/XR0JBE`:VL*DMLVH MD;A@1-4F)6AMWKQ[B/-R"%7`IG)#JD!N>\3O-XUWB!RE8"V<)3;)D8X'T1H.G)20F3DZNQG9;W(2S>UR$@WA,F&*SO;1C6M. MB2%Q9$2IJ]<*R5TCU]/1=W,>7"]$4Y.<:_T)SQEYWV"(IEXF@-LM1+=LE7/_ M;9"D=Z;$-[_,3;7RG2109TIIG$85H.*.B%,MJ*'TQ=N&^)Q9-GX;(^O0L(V: M6DR&_[MX-0`,E&N_7)/39%##<4GF4Q4E2W0TUT9X3M23$JPH"))$-5+TMO); MKUY.6$ZT:N'44%^H4'?85;:ME-O+8(+OT$.L0:AB[W3K5=QS0;94OG_BQKI_ M%\U'Z6P>;'B1YKL:>"==*3!P%-PAMU4)?"_7CL0S1J:4R2BY!?2+);!Z\D1' MRLS)66J\X+6\,M0>\OX..3["S:#;VF5VZ["W+2HMX1A9_5YO-\6T<^R.%C>W M=H5;7(@RZ_=\6^)>=TT1-`I`&ZQ*=VX]^$6J2A+$JX*V:I>E/BRONRK=476( M%E28#+;?U7U2MY3;.6(6!57S1.CPM+D=7H02TRS\2!*N3'-A*+E$H&VKX@TK MY`$;H:4O.4W*-0>GJ-A@;$>H\>]1VI@W*ZP M-#`AARM=^WMFO4$X;==-_AWDO1GLW[P*7:>O^8:Z8E.IR;7&NGVAAU>)!"-/ MR\25T%?QD/R]1[',F94]Z<&Q>.V3(%%V:@3U.Y9J]D[[:8QPR%O1?] M0RXUTV=4XG>N.K=1F\@TMU6=##V^@GS0MBKOU%;E7$"GW%,O^+U>&HHWIQP_ M,*MDLD?1I^2^`;00P&-2\+OZ=$:RO`U^7RZ\51?B&W@5N.I9>"S3!L)+#/IO\^)@CI.R[WAJ M+,WC:B-3]@ZV_5H/7O3%V\$8?^[SN1[="SB,/,@+KZ5^>]_KL8Q,`HO*T>_& MZWP,X\=/]B@=Q#Z<0D`E$&KL6"U,9NN$T[$$)V$NE7PPL(P:=O5]H_\#OB3Y %CA%U``!/ ` end