[Bug bootstrap/69677] [6 Regression] bootstrap failed with --with-arch=corei7 --with-cpu=corei7

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Feb 5 03:23:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69677

--- Comment #9 from H.J. Lu <hjl.tools at gmail dot com> ---
Another problem.  STV is disabled even when stack is aligned:

[hjl@gnu-skl-1 pr69677]$ cat x.i
struct bar
{
  int i[16] __attribute__ ((aligned(16)));
};

extern void fn2 (void);
long long a, b;

struct bar
fn1 (struct bar x)
{
  long long c = a;
  a = b ^ a;
  fn2 ();
  a = c;
  return x;
}
[hjl@gnu-skl-1 pr69677]$ make x.s
/export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -m32 -O2 -msse2
-mno-accumulate-outgoing-args -mpreferred-stack-boundary=2 -S x.i
[hjl@gnu-skl-1 pr69677]$ cat x.s
        .file   "x.i"
        .text
        .p2align 4,,15
        .globl  fn1
        .type   fn1, @function
fn1:
.LFB0:
        .cfi_startproc
        pushl   %ebp
        .cfi_def_cfa_offset 8
        .cfi_offset 5, -8
        movl    %esp, %ebp
        .cfi_def_cfa_register 5
        pushl   %edi
        pushl   %esi
        pushl   %ebx
        pushl   %ecx
        .cfi_offset 7, -12
        .cfi_offset 6, -16
        .cfi_offset 3, -20
        .cfi_offset 1, -24
        leal    8(%ebp), %ecx
        subl    $4, %esp
        movl    a, %eax
        movl    a+4, %edi
        movl    (%ecx), %ebx
        movl    %ecx, %esi
        movl    %eax, %edx
        xorl    b, %edx
        movl    %eax, -20(%ebp)
        movl    %edx, a
        movl    b+4, %edx
        xorl    %edi, %edx
        movl    %edx, a+4
        call    fn2
        movl    -20(%ebp), %eax
        movl    %edi, a+4
        movl    %eax, a
        movl    4(%esi), %eax
        movl    %eax, (%ebx)
        movl    8(%esi), %eax
        movl    %eax, 4(%ebx)
        movl    12(%esi), %eax
        movl    %eax, 8(%ebx)
        movl    16(%esi), %eax
        movl    %eax, 12(%ebx)
        movl    20(%esi), %eax
        movl    %eax, 16(%ebx)
        movl    24(%esi), %eax
        movl    %eax, 20(%ebx)
        movl    28(%esi), %eax
        movl    %eax, 24(%ebx)
        movl    32(%esi), %eax
        movl    %eax, 28(%ebx)
        movl    36(%esi), %eax
        movl    %eax, 32(%ebx)
        movl    40(%esi), %eax
        movl    %eax, 36(%ebx)
        movl    44(%esi), %eax
        movl    %eax, 40(%ebx)
        movl    48(%esi), %eax
        movl    %eax, 44(%ebx)
        movl    52(%esi), %eax
        movl    %eax, 48(%ebx)
        movl    56(%esi), %eax
        movl    %eax, 52(%ebx)
        movl    60(%esi), %eax
        movl    %eax, 56(%ebx)
        movl    64(%esi), %eax
        movl    %eax, 60(%ebx)
        addl    $4, %esp
        movl    %ebx, %eax
        popl    %ecx
        .cfi_restore 1
        popl    %ebx
        .cfi_restore 3
        popl    %esi
        .cfi_restore 6
        popl    %edi
        .cfi_restore 7
        popl    %ebp
        .cfi_restore 5
        .cfi_def_cfa 4, 4
        ret     $4
        .cfi_endproc
.LFE0:
        .size   fn1, .-fn1
        .comm   b,8,8
        .comm   a,8,8
        .ident  "GCC: (GNU) 6.0.0 20160205 (experimental)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-skl-1 pr69677]$


More information about the Gcc-bugs mailing list