[Issue 16045] New: Unable to loading global variables in inline assembly with -fPIC

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Thu May 19 06:22:32 PDT 2016


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

          Issue ID: 16045
           Summary: Unable to loading global variables in inline assembly
                    with -fPIC
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: aliloko at gmail.com

Consider the following source file `asm_pic.d`:

    align(16) static immutable short[8] A = [ 1, 1, 1, 1, 3, 3, 3, 3 ];

    void main()
    {
        asm
        {                 
            pmullw XMM0, A;
        }
    }

LDC 1.0.0-b1 thinks it's compatible with PIC code.

```bash
$ ldc2 asm_pic.d # ok
$ ldc2 -relocation-model=pic asm_pic.d # ok
```

DMD disallows to load the constant in PIC code.


$ dmd asm_pic.d  # ok
$ dmd -fPIC asm_pic.d  # fail
asm_pic.d(7): Error: cannot directly load global variable 'A' with PIC code

--


More information about the Digitalmars-d-bugs mailing list