From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8271 invoked by alias); 4 Aug 2009 13:58:58 -0000 Received: (qmail 8254 invoked by uid 22791); 4 Aug 2009 13:58:56 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_41,J_CHICKENPOX_53,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from wf-out-1314.google.com (HELO wf-out-1314.google.com) (209.85.200.173) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 04 Aug 2009 13:58:49 +0000 Received: by wf-out-1314.google.com with SMTP id 23so1324495wfg.24 for ; Tue, 04 Aug 2009 06:58:47 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.245.17 with SMTP id s17mr653991wfh.225.1249394327089; Tue, 04 Aug 2009 06:58:47 -0700 (PDT) In-Reply-To: <12777.41847.qm@web112516.mail.gq1.yahoo.com> References: <12777.41847.qm@web112516.mail.gq1.yahoo.com> From: Hui Zhu Date: Tue, 04 Aug 2009 13:58:00 -0000 Message-ID: Subject: Re: final i386.floating.record.patch To: paawan oza Cc: Michael Snyder , "gdb-patches@sourceware.org" Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes 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/msg00042.txt.bz2 I think you can do it with youself. Hui On Tue, Aug 4, 2009 at 21:05, paawan oza wrote: > > Hi, > > As I understand you have tried to run the example test code which I had s= ent 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" = >> 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. >> >> --- On Tue, 8/4/09, Hui Zhu >> wrote: >> >> > 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, >> > >> > Thanks for your work. >> > >> > 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". >> > >> > It looks like some fp reg's values not right in >> replay >> > mode. >> > >> > In record mode they are: >> > fctrl >> > 0x37f=A0=A0=A0 895 >> > fstat >> > 0x0=A0=A0=A0 0 >> > ftag >> > =A0=A0=A00xffff=A0=A0=A0 65535 >> > fiseg >> > 0x0=A0=A0=A0 0 >> > fioff >> > 0x0=A0=A0=A0 0 >> > ---Type to continue, or q >> to >> > quit--- >> > foseg >> > 0x0=A0=A0=A0 0 >> > fooff >> > 0x0=A0=A0=A0 0 >> > fop >> > 0x0=A0=A0=A0 0 >> > >> > In replay mode they are: >> > fctrl >> > 0x37f=A0=A0=A0 895 >> > fstat >> > 0x6069=A0=A0=A0 24681 >> > ftag >> > =A0=A0=A00x557f=A0=A0=A0 21887 >> > fiseg >> > 0x73=A0=A0=A0 115 >> > fioff >> > 0x8048bfd=A0=A0=A0 134515709 >> > ---Type to continue, or q >> to >> > quit--- >> > foseg >> > 0x7b=A0=A0=A0 123 >> > fooff >> > 0x0=A0=A0=A0 0 >> > fop >> > 0x2e9=A0=A0=A0 745 >> > >> > >> > >> > Thanks, >> > Hui >> > >> > >> > #include >> > #include >> > #include >> > >> > /* 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 >> > */ >> > >> > 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; >> > >> > /* 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; >> > } >> > >> > /* 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)"); >> > } >> > >> > /* 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); >> > >> >=A0 result =3D fmodf(no2,no1); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 resultd =3D fmod(x,y); >> >=A0 printf("result is %f\n",resultd); >> > >> >=A0 resultld =3D fmodl(ldy,ldy); >> >=A0 printf("result is %f\n",resultld); >> > >> >=A0 result =3D fabsf(no1); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D no3 / no4; >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D no1 * no2 * no3 * no4; >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D no1 - no2 - no3 - no4; >> >=A0 printf("result is %f\n",result); >> > >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("fchs"); >> > >> >=A0 /* test for f2xm1 */ >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("f2xm1"); >> > >> >=A0 asm ("fyl2x"); >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("fxtract"); >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("fprem1"); >> > >> >=A0 /* decrement fpu stack pointer only status >> register should >> > get affected */ >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> > >> >=A0 empty_fpu_stack(); >> > >> >=A0 asm ("fld1"); >> >=A0 asm ("fldl2t"); >> >=A0 asm ("fldl2e"); >> >=A0 asm ("fldpi"); >> >=A0 asm ("fldlg2"); >> >=A0 asm ("fldln2"); >> >=A0 asm ("fldz"); >> > >> >=A0 empty_fpu_stack(); >> >=A0 /* finishing emptying the stack */ >> > >> >=A0 result =3D sqrt(no3); >> >=A0 printf("result is %f\n",result); >> > } >> > >> > void test_log_exp_floats() >> > { >> >=A0 result =3D log10(no3); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D log(no3); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D exp10(no3); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D exp(no3); >> >=A0 printf("result is %f\n",result); >> > } >> > >> > void test_trigo_floats() >> > { >> >=A0 result =3D sin(30); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D cos(30); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D tan(30); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 result =3D atan(30); >> >=A0 printf("result is %f\n",result); >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("fptan"); >> > >> >=A0 /* changes st1 and popping register stack */ >> >=A0 asm ("fpatan"); >> > >> >=A0 asm("fincstp"); >> >=A0 asm ("fld %0" : :"m"(float_memory)); >> >=A0 asm ("fsincos"); >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("frndint"); >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("fld %0" : :"m"(*(float_memory+1))); >> >=A0 asm ("fscale"); >> > >> >=A0 empty_fpu_stack(); >> > >> >=A0 asm ("fld %0" : :"m"(*float_memory)); >> >=A0 asm ("fsin"); >> >=A0 asm ("fcos"); >> > >> >=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"); >> > >> >=A0 empty_fpu_stack(); >> >=A0 /* finished emtyping the stack */ >> > } >> > >> > 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; >> > } >> > >> > /* 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"); >> > } >> > >> > 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(); >> > } >> > >> > >> > >> > >> > 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 >> 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. >> > 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? >> > >> >> > >> >> > > >> > > >> > > >> > >> >> >> >> > > > >