kwhite@csi.uottawa.ca (Keith White) (05/01/91)
I appear to have been successful in modifying GNU C (1.39) to not output 387 instructions. The compiler will compile itself and gawk (the only programs that I've tested it with). Incidentally, gawk runs *considerably* faster -- none of that waiting for the floating point emulation code to be signalled. The patches that follow are to be fed through patch in the ./config directory after the files in plains.nodak.edu:/pub/Minix/uk/gccdiff.tar.Z courtesy of Alan W Black (awb@ed.ac.uk) and Richard Tobin (richard@aiai.ed.ac.uk) without whom none of this would be possible! PROBLEMS: --------- You can't mix object files between the "-f80387" and "-fsoft-float" versions. Obvious really, since floating point numbers are returned in different ways in the different versions. With these mods the "-f80387" option won't work at all! I'm not very motivated to fix this problem since I don't actually have one of those beasties; but it shouldn't be too difficult to fix :-) and I will get to it eventually, maybe. You'll need to recompile all library routines that use floating point. Consider this alpha code, use at your own risk, standard disclaimers apply... ---cut here--- begin 600 diff.i386 M*BHJ(&DS.#8N;60)5'5E($%P<B R,R Q-#HT,CHT-" Q.3DQ"BTM+2!I,S@V M+FUD+F]R:6<)4V%T($IA;B Q,B Q-#HR,SHU-" Q.3DQ"BHJ*BHJ*BHJ*BHJ M*BHJ*@HJ*BH@,3DT-2PQ.34Q("HJ*BH*(" @(" @?0H@(" @96QS90H@(" @ M("!O=71P=71?87-M7VEN<VX@*%PB8V%L;" E,5PB+"!O<&5R86YD<RD["B$@ M(VEF(# *(" @(&EF("A'151?34]$12 H;W!E<F%N9'-;,%TI(#T]($1&;6]D M90H@(" @(" @('Q\($=%5%]-3T1%("AO<&5R86YD<ULP72D@/3T@4T9M;V1E M*0H@(" @("!["BTM+2 Q.30U+#$Y-3$@+2TM+0H@(" @("!]"B @("!E;'-E M"B @(" @(&]U='!U=%]A<VU?:6YS;B H7")C86QL("4Q7"(L(&]P97)A;F1S M*3L*(2 *(" @(&EF("A'151?34]$12 H;W!E<F%N9'-;,%TI(#T]($1&;6]D M90H@(" @(" @('Q\($=%5%]-3T1%("AO<&5R86YD<ULP72D@/3T@4T9M;V1E M*0H@(" @("!["BHJ*BHJ*BHJ*BHJ*BHJ*@HJ*BH@,3DU."PQ.38T("HJ*BH* M(" )("!03U!?3TY%7T90.PH@( E]"B @(" @('T*+2 C96YD:68*(" @(%)% M5#L*("!](BD*(" *+2TM(#$Y-3@L,3DV,R M+2TM"BHJ*B!T;2UI,S@V+F@) M5'5E($%P<B R,R Q-#HP,3HR-" Q.3DQ"BTM+2!T;2UI,S@V+F@N;W)I9PE7 M960@2F%N(#,Q(#$R.C4S.C4U(#$Y.3 **BHJ*BHJ*BHJ*BHJ*BHJ"BHJ*B Q M,S@L,30T("HJ*BH*(" @("!/;B!T:&4@.# S.#8L(&]N;'D@=&AE('-T86-K M('!O:6YT97(@:7,@<W5C:"X@("HO"B @(V1E9FEN92!&25A%1%]214=)4U1% M4E,@7 H@("\J87@L860L86,L86(L<VDL9&DL8G L<W L9G9A;"QF<# J+R @ M(" @("!<"B$@>R @,"P@,"P@,"P@,"P@,"P@,"P@,"P@,2P@,2P@,7T*(" * M(" O*B [.V-H86YG92UW9G,@*B\*(" *+2TM(#$S."PQ-#0@+2TM+0H@(" @ M($]N('1H92 X,#,X-BP@;VYL>2!T:&4@<W1A8VL@<&]I;G1E<B!I<R!S=6-H M+B @*B\*(" C9&5F:6YE($9)6$5$7U)%1TE35$524R!<"B @+RIA>"QA9"QA M8RQA8BQS:2QD:2QB<"QS<"QF=F%L+&9P,"HO(" @(" @(%P*(2![(" P+" P M+" P+" P+" P+" P+" P+" Q+" Q+" P?0H@( H@("\J(#L[8VAA;F=E+7=F M<R J+PH@( HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#$Y-RPR,#,@*BHJ*@H@("-D M969I;F4@1E)!345?4$])3E1%4E]214=.54T@-@H@( H@("\J($9I<G-T(&9L M;V%T:6YG('!O:6YT(')E9R J+PHA("-D969I;F4@1DE24U1?1DQ/051?4D5' M(# *(" O*B!686QU92!S:&]U;&0@8F4@;F]N>F5R;R!I9B!F=6YC=&EO;G,@ M;75S="!H879E(&9R86UE('!O:6YT97)S+@H@(" @(%IE<F\@;65A;G,@=&AE M(&9R86UE('!O:6YT97(@;F5E9"!N;W0@8F4@<V5T('5P("AA;F0@<&%R;7,* M(" @("!M87D@8F4@86-C97-S960@=FEA('1H92!S=&%C:R!P;VEN=&5R*2!I M;B!F=6YC=&EO;G,@=&AA="!S965M('-U:71A8FQE+@HM+2T@,3DW+#(P,R M M+2TM"B @(V1E9FEN92!&4D%-15]03TE.5$527U)%1TY532 V"B @"B @+RH@ M1FER<W0@9FQO871I;F<@<&]I;G0@<F5G("HO"B$@(V1E9FEN92!&25)35%]& M3$]!5%]214<@. H@("\J(%9A;'5E('-H;W5L9"!B92!N;VYZ97)O(&EF(&9U M;F-T:6]N<R!M=7-T(&AA=F4@9G)A;64@<&]I;G1E<G,N"B @(" @6F5R;R!M M96%N<R!T:&4@9G)A;64@<&]I;G1E<B!N965D(&YO="!B92!S970@=7 @*&%N M9"!P87)M<PH@(" @(&UA>2!B92!A8V-E<W-E9"!V:6$@=&AE('-T86-K('!O M:6YT97(I(&EN(&9U;F-T:6]N<R!T:&%T('-E96T@<W5I=&%B;&4N"BHJ*BHJ M*BHJ*BHJ*BHJ*@HJ*BH@,C@T+#(Y,2 J*BHJ"B @(V1E9FEN92!.3TY?44E? M4D5'7U H6"D@7 H@(" @*%)%1U]0("A8*2 F)B!214=.3R H6"D@/CT@-" F M)B!214=.3R H6"D@/"!&25)35%]04T551$]?4D5'25-415(I"B @"B$@(V1E M9FEN92!&4%]214=?4"A8*2 P("\J("A214=?4" H6"D@)B8@1E!?4D5'3D]? M4" H4D5'3D\@*%@I*2D@*B\*(2 C9&5F:6YE($907U)%1TY/7U H;BD@," O M*B H*&XI(#X]($9)4E-47T9,3T%47U)%1R F)B H;BD@/"!&25)35%]04T55 M1$]?4D5'25-415(I("HO"B @(" *(" O*B!4<GD@=&\@;6%I;G1A:6X@=&AE M(&%C8W5R86-Y(&]F('1H92!D96%T:"!N;W1E<R!F;W(@<F5G<R!S871I<V9Y M:6YG('1H90H@(" @(&9O;&QO=VEN9RX@($EM<&]R=&%N="!F;W(@<W1A8VL@ M;&EK92!R96=S+"!T;R!K;F]W('=H96X@=&\@<&]P+B J+PHM+2T@,C@T+#(Y M,2 M+2TM"B @(V1E9FEN92!.3TY?44E?4D5'7U H6"D@7 H@(" @*%)%1U]0 M("A8*2 F)B!214=.3R H6"D@/CT@-" F)B!214=.3R H6"D@/"!&25)35%]0 M4T551$]?4D5'25-415(I"B @"B$@(V1E9FEN92!&4%]214=?4"A8*2 H4D5' M7U @*%@I("8F($907U)%1TY/7U @*%)%1TY/("A8*2DI"B$@(V1E9FEN92!& M4%]214=.3U]0*&XI("@H;BD@/CT@1DE24U1?1DQ/051?4D5'("8F("AN*2 \ M($9)4E-47U!3155$3U]214=)4U1%4BD*(" @( H@("\J(%1R>2!T;R!M86EN M=&%I;B!T:&4@86-C=7)A8WD@;V8@=&AE(&1E871H(&YO=&5S(&9O<B!R96=S M('-A=&ES9GEI;F<@=&AE"B @(" @9F]L;&]W:6YG+B @26UP;W)T86YT(&9O K<B!S=&%C:R!L:6ME(')E9W,L('1O(&MN;W<@=VAE;B!T;R!P;W N("HO"F9O end ---cut here--- ...keith -- BITNET: kwhite@uotcsi2.bitnet UUCP: {...,nrcaer,cunews}!uotcsi2!kwhite INTERNET: kwhite@csi.uottawa.ca
HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (05/02/91)
Does anyone know where to report GCC errors to the FSF guys? There is an error in gcc-1.39, it may pop off the 387 stack even if it is used later there are jumps across basic blocks ...etc (too much details here). I also have a fix, but I forgot where to report the error to. C.v.W.
kwhite@csi.uottawa.ca (Keith White) (05/03/91)
Sure, try bug-gcc@prep.ai.mit.edu (these bugs sometimes make it to the gnu.gcc.bug newsgroup). I've also been able to build a compiler that doesn't use a 387 but will support the -m30387 switch. Actually the changes were pretty easy (he says shamefacedley). If anyone is just itching to give it a try, mail me a request. I'll post the diffs after I've given the "new" compiler a bit of a test. ...keith -- BITNET: kwhite@uotcsi2.bitnet UUCP: {...,nrcaer,cunews}!uotcsi2!kwhite INTERNET: kwhite@csi.uottawa.ca