From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22553 invoked by alias); 4 Aug 2009 13:06:01 -0000 Received: (qmail 22271 invoked by uid 22791); 4 Aug 2009 13:05:58 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_41,J_CHICKENPOX_53 X-Spam-Check-By: sourceware.org Received: from web112516.mail.gq1.yahoo.com (HELO web112516.mail.gq1.yahoo.com) (98.137.26.182) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Tue, 04 Aug 2009 13:05:51 +0000 Received: (qmail 42803 invoked by uid 60001); 4 Aug 2009 13:05:46 -0000 Message-ID: <12777.41847.qm@web112516.mail.gq1.yahoo.com> Received: from [123.237.137.138] by web112516.mail.gq1.yahoo.com via HTTP; Tue, 04 Aug 2009 06:05:45 PDT Date: Tue, 04 Aug 2009 13:06:00 -0000 From: paawan oza Subject: Re: final i386.floating.record.patch To: Hui Zhu Cc: Michael Snyder , "gdb-patches@sourceware.org" MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00041.txt.bz2 Hi, As I understand you have tried to run the example test code which I had sen= t earlier. please let me know at which c statement (or insn) it is causing this ? So I can dig into it more. Thanks & Regards, Oza. --- On Tue, 8/4/09, paawan oza wrote: > From: paawan oza > Subject: Re: final i386.floating.record.patch > To: "Hui Zhu" > Cc: "Michael Snyder" , "gdb-patches@sourceware.org" <= gdb-patches@sourceware.org> > Date: Tuesday, August 4, 2009, 6:32 PM > Hi Hui, > I am not sure which test case (insn)=A0 caused this. > would you please send me the example (.c file) which you > have tried to run ? > please also try to let me know at which insn (at which > point it fails). > Regards, > Oza. >=20 > --- On Tue, 8/4/09, Hui Zhu > wrote: >=20 > > From: Hui Zhu > > Subject: Re: final i386.floating.record.patch > > To: "paawan oza" > > Cc: "Michael Snyder" , > "gdb-patches@sourceware.org" > > > Date: Tuesday, August 4, 2009, 8:49 AM > > Hi Paawan, > >=20 > > Thanks for your work. > >=20 > > I do a some test works with the test code that you > sent in > > before. > > I get the values of fp reg with command "info > > all-registers". > >=20 > > It looks like some fp reg's values not right in > replay > > mode. > >=20 > > In record mode they are: > > fctrl=A0 =A0 =A0 =A0 =A0 > > 0x37f=A0=A0=A0 895 > > fstat=A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > > ftag=A0 =A0 =A0 =A0 > > =A0=A0=A00xffff=A0=A0=A0 65535 > > fiseg=A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > > fioff=A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > > ---Type to continue, or q > to > > quit--- > > foseg=A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > > fooff=A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > > fop=A0 =A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > >=20 > > In replay mode they are: > > fctrl=A0 =A0 =A0 =A0 =A0 > > 0x37f=A0=A0=A0 895 > > fstat=A0 =A0 =A0 =A0 =A0 > > 0x6069=A0=A0=A0 24681 > > ftag=A0 =A0 =A0 =A0 > > =A0=A0=A00x557f=A0=A0=A0 21887 > > fiseg=A0 =A0 =A0 =A0 =A0 > > 0x73=A0=A0=A0 115 > > fioff=A0 =A0 =A0 =A0 =A0 > > 0x8048bfd=A0=A0=A0 134515709 > > ---Type to continue, or q > to > > quit--- > > foseg=A0 =A0 =A0 =A0 =A0 > > 0x7b=A0=A0=A0 123 > > fooff=A0 =A0 =A0 =A0 =A0 > > 0x0=A0=A0=A0 0 > > fop=A0 =A0 =A0 =A0 =A0 =A0 > > 0x2e9=A0=A0=A0 745 > >=20 > >=20 > >=20 > > Thanks, > > Hui > >=20 > >=20 > > #include > > #include > > #include > >=20 > > /* the test intends to test following insns. > > flds faddp fstps fstpl fldl fxch fabs fdivrp fmulp > fsubrp > > fucomp fnstsw fsqrt > > fchs f2xm1 fyl2x fxtract fprem1 fld fdecstp fld1 > fldl2t > > fldl2e FLDPI > > FLDLG2 FLDLN2 > > FLDZ fincstp ffree fptan fpatan fincstp fsincos > frndint > > fscale fsin fcos fcmovb > > fcmovbe fcmove fcmovu fcmovnb fcmovnbe fsave frstor > fstsw > > */ > >=20 > > float no1,no2,no3,no4,no5,no6,no7; > > double x =3D 100.345, y =3D 25.7789; > > long double ldx =3D 88888888888888888888.88, ldy =3D > > 9999999999999999999.99; > > float result,resultd,resultld; > > float *float_memory; > >=20 > > /* initialization of floats */ > > void init_floats() > > { > >=A0 no1 =3D 10.45; > >=A0 no2 =3D 20.77; > >=A0 no3 =3D 156.89874646; > >=A0 no4 =3D 14.56; > >=A0 no5 =3D 11.11; > >=A0 no6 =3D 66.77; > >=A0 no7 =3D 88.88; > >=A0 float_memory =3D malloc(sizeof(float) * 4); > >=A0 *float_memory =3D 256.256; > >=A0 *(float_memory + 1) =3D 356.356; > >=A0 *(float_memory + 2) =3D 456.456; > >=A0 *(float_memory + 3) =3D 556.556; > > } > >=20 > > /* marks FPU stack as empty */ > > void empty_fpu_stack() > > { > >=A0 asm ("ffree %st(1) \n\t" > > =A0 =A0 =A0 "ffree %st(2) \n\t" > > =A0 =A0 =A0 "ffree %st(3) \n\t" > > =A0 =A0 =A0 "ffree %st(4) \n\t" > > =A0 =A0 =A0 "ffree %st(5) \n\t" > > =A0 =A0 =A0 "ffree %st(6) \n\t" > > =A0 =A0 =A0 "ffree %st(7)"); > > } > >=20 > > /* tests floating point arithmatic */ > > void test_arith_floats() > > { > >=A0 result =3D no1 + no2 + no3 + no4 + no5 + no6 + > no7; > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D fmodf(no2,no1); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 resultd =3D fmod(x,y); > >=A0 printf("result is %f\n",resultd); > >=20 > >=A0 resultld =3D fmodl(ldy,ldy); > >=A0 printf("result is %f\n",resultld); > >=20 > >=A0 result =3D fabsf(no1); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D no3 / no4; > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D no1 * no2 * no3 * no4; > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D no1 - no2 - no3 - no4; > >=A0 printf("result is %f\n",result); > >=20 > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fchs"); > >=20 > >=A0 /* test for f2xm1 */ > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("f2xm1"); > >=20 > >=A0 asm ("fyl2x"); > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fxtract"); > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fprem1"); > >=20 > >=A0 /* decrement fpu stack pointer only status > register should > > get affected */ > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=20 > >=A0 empty_fpu_stack(); > >=20 > >=A0 asm ("fld1"); > >=A0 asm ("fldl2t"); > >=A0 asm ("fldl2e"); > >=A0 asm ("fldpi"); > >=A0 asm ("fldlg2"); > >=A0 asm ("fldln2"); > >=A0 asm ("fldz"); > >=20 > >=A0 empty_fpu_stack(); > >=A0 /* finishing emptying the stack */ > >=20 > >=A0 result =3D sqrt(no3); > >=A0 printf("result is %f\n",result); > > } > >=20 > > void test_log_exp_floats() > > { > >=A0 result =3D log10(no3); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D log(no3); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D exp10(no3); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D exp(no3); > >=A0 printf("result is %f\n",result); > > } > >=20 > > void test_trigo_floats() > > { > >=A0 result =3D sin(30); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D cos(30); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D tan(30); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 result =3D atan(30); > >=A0 printf("result is %f\n",result); > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fptan"); > >=20 > >=A0 /* changes st1 and popping register stack */ > >=A0 asm ("fpatan"); > >=20 > >=A0 asm("fincstp"); > >=A0 asm ("fld %0" : :"m"(float_memory)); > >=A0 asm ("fsincos"); > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("frndint"); > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fld %0" : :"m"(*(float_memory+1))); > >=A0 asm ("fscale"); > >=20 > >=A0 empty_fpu_stack(); > >=20 > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fsin"); > >=A0 asm ("fcos"); > >=20 > >=A0 /* currently we assume condition likely and > always record > > the registers > >=A0 code could be optimized only if the flag is set > then > > record */ > >=A0 asm ("fld %0" : :"m"(*float_memory)); > >=A0 asm ("fld %0" : :"m"(*(float_memory+1))); > >=A0 asm ("fcmovb %st(1), %st"); > >=A0 asm ("fcmovbe %st(1), %st"); > >=A0 asm ("fcmove %st(1), %st"); > >=A0 asm ("fcmovu %st(1), %st"); > >=A0 asm ("fcmovnb %st(1), %st"); > >=A0 asm ("fcmovnbe %st(1), %st"); > >=20 > >=A0 empty_fpu_stack(); > >=A0 /* finished emtyping the stack */ > > } > >=20 > > void test_compare_floats() > > { > > =A0=A0=A0ldy =3D 88888888888888888888.88; > > =A0=A0=A0if (ldx =3D=3D ldy) > > =A0 =A0=A0=A0ldy =3D > > 7777777777777777777777777777.777; > > =A0=A0=A0else > > =A0 =A0=A0=A0ldy =3D > > 666666666666666666666666666.666; > > } > >=20 > > /* test loading and saving of FPU environment */ > > void test_fpu_env() > > { > >=A0 asm ("fsave %0" : "=3Dm"(*float_memory) : ); > >=A0 asm ("frstor %0" : : "m"(*float_memory)); > >=A0 asm ("fstsw %ax"); > > } > >=20 > > int main() > > { > > =A0=A0=A0init_floats(); > > =A0=A0=A0test_arith_floats(); > > =A0=A0=A0test_log_exp_floats(); > > =A0=A0=A0test_trigo_floats(); > > =A0=A0=A0test_compare_floats(); > > =A0=A0=A0test_fpu_env(); > > } > >=20 > >=20 > >=20 > >=20 > > On Mon, Aug 3, 2009 at 22:56, paawan oza > > wrote: > > > Hi, > > > > > > please find the patch attached. I have attached > as per > > your suggestion. > > > I am attaching it from opera browser. > > > > > > Regards, > > > Oza. > > > > > > --- On Thu, 7/30/09, Michael Snyder > > wrote: > > > > > >> From: Michael Snyder > > >> Subject: Re: final =A0 > i386.floating.record.patch > > >> To: "paawan oza" > > >> Cc: "gdb-patches@sourceware.org" > > > > >> Date: Thursday, July 30, 2009, 11:31 PM > > >> paawan oza wrote: > > >> > Hi, > > >> > > > >> > please find my answers below. > > >> > > > >> >=A0 1) Are you using a Windows machine to > send > > your > > >> >=A0 emails?=A0 If so, > > >> >=A0 is it possible that there is a > Unix/Linux > > >> machine you could > > >> >=A0 try > > >> >=A0 sending from?=A0 Your attachments look > OK > > for > > >> me, but > > >> >=A0 some people > > >> >=A0 seem to have had problems with them. > > >> > > > >> > Oza : I used to send all from windows > till > > now. > > >> > but this patch I sent it from > Linux...from > > opera. > > >> >=A0=A0=A02) And are you using cut-and-paste > to > > >> insert the patches > > >> >=A0 into the > > >> >=A0 body of your email?=A0 That would > certainly > > >> cause > > >> >=A0 problems, because > > >> >=A0 tabs might be changed into spaces > (which > > is > > >> exactly what > > >> >=A0 was > > >> >=A0 causing patch to fail for me today). > > >> >=A0 Oza: yes I am using copy-paste....I > dont > > know > > >> any-other way. > > >> > because attachmenet are not welcome, so > I am > > not sure > > >> how I could proceed with this. > > >> > > >> It's not that attachments are not welcome. > > >> There are various binary encodings for > > attachments, and > > >> some of those binary encodings are not > welcome.=A0 > > I > > >> think > > >> because there's no open-source way of > decoding > > them. > > >> > > >> If you look at the list, you'll see that > > attachments are > > >> used a lot. > > >> > > >> Copy-and-paste, though, in general will not > work, > > because > > >> it > > >> usually changes tabs into spaces, which ruins > a > > patch. > > >> > > >> > > >> > I will send you updated patch.....may be > I > > might have > > >> mistaken of old gdb file. sorry for > incovenience. > > >> > > >> I think it was just the tabs-to-spaces > issue. > > >> Why don't you try sending an attachment from > > Opera? > > >> > > >> > > > > > > > > > > >=20 >=20 >=20 >=20 >=20 =20=20=20=20=20