Re: Crashes in world built w/ clang: FP registers?

From: Roman Divacky <rdivacky_at_freebsd.org>
Date: Mon, 19 Sep 2011 17:52:53 +0200
On Mon, Sep 19, 2011 at 05:46:54PM +0200, Roman Divacky wrote:
> On Sun, Sep 18, 2011 at 11:05:55AM -0500, Jason Harmening wrote:
> > > Can you try building just tcsh ? I wonder if -O0 makes any difference...
> > >
> > > in either case, can you give me preprocessed (clang -E) source that
> > > exhibits this bug (check with objdump -d that the unaligned sse read
> > > is there) and show me how to reproduce that... I'll try that here.
> > >
> > >
> > > To be honest, I am not sure why others are not seeing this behaviour :(
> > >
> > > roman
> > >
> > 
> > Building w/ -O0 eliminated the crash in csh at least.  In that case,
> > tw_collect() isn't even using the SSE registers.
> > I've attached the objdump output for csh for both the -O2 and -O0
> > cases, along w/ the preprocessor output for tw.parse.c.
> 
> it doesnt build for me.. with tons of errors like
> 
> pes ~$ clang tw.parse.cpp 
> In file included from ../../contrib/tcsh/tw.parse.c:1:
> In file included from ../../contrib/tcsh/tw.parse.c:36:
> In file included from ../../contrib/tcsh/sh.h:38:
> /usr/include/stddef.h:57:19: error: cannot combine with previous 'type-name'
> declaration specifier
> typedef __wchar_t wchar_t;
>                   ^
> 
> how did you get the preprocessed file? and/or how do you compile it?

Nevermind... I managed to save the file as a .cpp file :)

But I am not seeing any misaligned SSE reads/writes:

pes ~$ clang -O2 -c tw.parse.c && objdump -d tw.parse.o | grep movaps
      23:       0f 29 85 60 ff ff ff    movaps %xmm0,0xffffffffffffff60(%rbp)
     3f6:       0f 29 85 10 ff ff ff    movaps %xmm0,0xffffffffffffff10(%rbp)
     6b6:       0f 29 85 f0 fe ff ff    movaps %xmm0,0xfffffffffffffef0(%rbp)
     85b:       0f 29 45 c0             movaps %xmm0,0xffffffffffffffc0(%rbp)
     867:       0f 29 45 a0             movaps %xmm0,0xffffffffffffffa0(%rbp)
     873:       0f 29 45 80             movaps %xmm0,0xffffffffffffff80(%rbp)
     b37:       0f 29 85 d0 fe ff ff    movaps %xmm0,0xfffffffffffffed0(%rbp)
     e2c:       0f 29 85 c0 fe ff ff    movaps %xmm0,0xfffffffffffffec0(%rbp)
     e3e:       0f 29 85 a0 fe ff ff    movaps %xmm0,0xfffffffffffffea0(%rbp)
     e50:       0f 29 85 80 fe ff ff    movaps %xmm0,0xfffffffffffffe80(%rbp)
    1a4b:       0f 29 45 c0             movaps %xmm0,0xffffffffffffffc0(%rbp)
    21e3:       0f 29 45 d0             movaps %xmm0,0xffffffffffffffd0(%rbp)
    2647:       0f 29 85 50 fe ff ff    movaps %xmm0,0xfffffffffffffe50(%rbp)
    2659:       0f 29 85 30 fe ff ff    movaps %xmm0,0xfffffffffffffe30(%rbp)

How exactly are you compiling it?

roman
Received on Mon Sep 19 2011 - 14:01:51 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:18 UTC