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: nob...@puremagic.com
          Reporter: alil...@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

--

Reply via email to