digitalmars.D.bugs - [Issue 8199] New: scope exit breaks stack alignment
- d-bugmail puremagic.com (46/46) Jun 05 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8199
- d-bugmail puremagic.com (14/14) Jun 14 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8199
- d-bugmail puremagic.com (8/8) Jun 21 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8199
- d-bugmail puremagic.com (8/8) Jun 21 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8199
- d-bugmail puremagic.com (10/10) Jun 21 2012 http://d.puremagic.com/issues/show_bug.cgi?id=8199
http://d.puremagic.com/issues/show_bug.cgi?id=8199
Summary: scope exit breaks stack alignment
Product: D
Version: D2
Platform: x86_64
OS/Version: FreeBSD
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: dawg dawgfoto.de
cat > bug.d << CODE
void checkAlign()
{
asm
{
naked;
mov RDI, RSP;
and RDI, 0xF;
cmp RDI, 0x8;
je Lpass;
hlt;
Lpass:
ret;
}
}
void foo()
{
}
void main()
{
checkAlign();
scope(exit) checkAlign();
foo();
}
CODE
dmd -run bug
----
The scope exit pushes the address of the return block onto the stack
which breaks the stack alignment.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 05 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8199
dawg dawgfoto.de changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
Severity|normal |major
https://github.com/D-Programming-Language/dmd/pull/988
This bug affects all calls from a finally block that require an aligned stack.
The "optimization" is also a huge performance hog. Abusing return as indirect
jump always incurs a branch misprediction.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 14 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8199 Commit pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/4e8cc86f5acc600511a4e12caab802b99d836c9b fix Issue 8199 - stack is not aligned in finally block -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 21 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8199 Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/2b3a94d50f2d31410c9a1f70dfb5ead7f31b4a27 fix Issue 8199 - stack is not aligned in finally block -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jun 21 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8199
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 21 2012









d-bugmail puremagic.com 