Skip to content

Unable to loading global variables in inline assembly with -fPIC #4249

Open
@dlangBugzillaToGithub

Description

@dlangBugzillaToGithub

ponce reported this on 2016-05-19T13:22:32Z

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

CC List

  • basile-z

Description

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions