digitalmars.D.bugs - [Issue 6875] New: floating point %= trashes register EAX
- d-bugmail puremagic.com (42/42) Nov 01 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6875
- d-bugmail puremagic.com (20/20) Feb 24 2012 http://d.puremagic.com/issues/show_bug.cgi?id=6875
http://d.puremagic.com/issues/show_bug.cgi?id=6875 Summary: floating point %= trashes register EAX Product: D Version: unspecified Platform: Other OS/Version: Windows Status: NEW Keywords: wrong-code Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: r.sagitario gmx.de --- Comment #0 from Rainer Schuetze <r.sagitario gmx.de> 2011-11-01 11:41:12 PDT --- With dmd 2.056: void main() { float g = 4; float f = 4; float *p = &f; *p %= g; assert(f == 0); } causes a crash at runtime or the assertion to fail. This is caused by the %= implementation changing the AX register unexpectedly: float *p = &f; 0040201E lea eax,[f] 00402021 mov dword ptr [p],eax *p %= g; 00402024 mov ecx,dword ptr fs:[2Ch] 0040202B mov edx,dword ptr [ecx] 0040202D fld dword ptr [edx+4] 00402033 fld dword ptr [eax] 00402035 fprem 00402037 fnstsw ax 00402039 sahf 0040203A jp D main+25h (402035h) 0040203C fstp st(1) 0040203E fstp dword ptr [eax] -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 01 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6875 yebblies <yebblies gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Version|unspecified |D1 & D2 Keywords| |pull Platform|Other |x86 CC| |yebblies gmail.com AssignedTo|nobody puremagic.com |yebblies gmail.com Resolution| |FIXED OS/Version|Windows |All --- Comment #1 from yebblies <yebblies gmail.com> 2012-02-24 21:24:04 EST --- Fixed in 2.059/1.073 head https://github.com/D-Programming-Language/dmd/pull/759 https://github.com/D-Programming-Language/dmd/commit/1d1bc367c131144e764d9fb81c36651407e3337d https://github.com/D-Programming-Language/dmd/commit/9fcab1292ec59b04a458f9ccc90736c500a52bf3 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 24 2012