[Issue 20621] New: Since DMD 2.087.0: 32 Bit Linux now uses XMM registers: SIGILL, Illegal instruction on intel Pentium III

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Feb 27 21:59:44 UTC 2020


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

          Issue ID: 20621
           Summary: Since DMD 2.087.0: 32 Bit Linux now uses XMM
                    registers: SIGILL, Illegal instruction on intel
                    Pentium III
           Product: D
           Version: D2
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: kdevel at vogtner.de

STR (copied from [1]):

```test.d
void main ()
{
   int [] v = new int [10];
}
```

$ [...]linux/bin32/dmd test
$ gdb test
[...]
(gdb) r
[...]
Program received signal SIGILL, Illegal instruction.
0x0809ad14 in _D2gc4impl12conservativeQw3Gcx10smallAllocMFNbkKkkxC8TypeInfoZPv
()
[...]
(gdb) disass
[...]
0x0809ad14
<_D2gc4impl12conservativeQw3Gcx10smallAllocMFNbkKkkxC8TypeInfoZPv+172>:     
movsd  -0x58(%ebp),%xmm0

ddemangled:
nothrow void* gc.impl.conservative.gc.Gcx.smallAlloc(uint, ref uint, uint,
const(TypeInfo))

Is this Component = druntime or phobos?
Why does memory allocation use an XMM register in the first place?

[1] http://forum.dlang.org/thread/suwlbzlgqdylfauwgteu@forum.dlang.org

--


More information about the Digitalmars-d-bugs mailing list