Bug 9965 – Wrong Assembly For DIL, SIL Registers

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-04-19T12:47:00Z
Last change time
2015-06-09T05:11:43Z
Keywords
iasm, wrong-code
Assigned to
nobody
Creator
dsimcha
See also
https://issues.dlang.org/show_bug.cgi?id=12971

Comments

Comment #0 by dsimcha — 2013-04-19T12:47:53Z
D Source: import core.stdc.stdio; void main() { ulong stuff; asm { xor RDI, RDI; mov DIL, 1; mov stuff, RDI; } printf("%lld\n", stuff); } Output: 0 obj2asm disassembly of main(): push RBP mov RBP,RSP sub RSP,010h mov qword ptr -8[RBP],0 xor RDI,RDI mov BH,1 mov -8[RBP],RDI mov RSI,-8[RBP] mov RDI,offset FLAT:.rodata@64 xor EAX,EAX call printf@PC32 xor EAX,EAX mov RSP,RBP pop RBP ret The opcode for BH is being generated when the assembly language code says DIL. Similarly, DH is generated when SIL is in the source code.
Comment #1 by bugzilla — 2013-04-20T17:30:41Z
Comment #2 by code — 2013-04-21T04:02:07Z
*** Issue 9972 has been marked as a duplicate of this issue. ***
Comment #3 by github-bugzilla — 2013-04-21T04:13:51Z
Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/c275b372c3ec3cc58a54a4a7da66736b53932eca fix Issue 9965 - Wrong Assembly For DIL, SIL Registers https://github.com/D-Programming-Language/dmd/commit/bddba0574f25ff06917f6ca3b380c2c515e3963b Merge pull request #1916 from WalterBright/fix9965 fix Issue 9965 - Wrong Assembly For DIL, SIL Registers
Comment #4 by github-bugzilla — 2013-04-21T12:27:30Z
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/0f741f4665959ec5dc1826d1aa3169e173edb559 Merge pull request #1916 from WalterBright/fix9965 fix Issue 9965 - Wrong Assembly For DIL, SIL Registers