[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