www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 14872] New: [2.068.0-rc1] Label address in asm [x86-64]

https://issues.dlang.org/show_bug.cgi?id=14872

          Issue ID: 14872
           Summary: [2.068.0-rc1] Label address in asm [x86-64]
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: major
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: wyrlon gmx.net

32bit x86 asm works fine, but I can't get 64bit working.

import std.stdio;

void main()
{
  size_t addr1=123;
  size_t addr2=456;

  version(D_InlineAsm_X86_64)
    asm
    {
      lea RAX,  lbl1;
      mov addr1, RAX;
      lea RAX,  lbl2;
      mov addr2, RAX;
    }
  else version(D_InlineAsm_X86)
    asm
    {
      lea EAX,  lbl1;
      mov addr1, EAX;
      lea EAX,  lbl2;
      mov addr2, EAX;
    }

lbl1: 
  writeln(addr1); // equals 1 for X86-64
lbl2: 
  writeln(addr2); // equals 1 for X86-64
}

--
Aug 05 2015