[Bug target/19558] openssl speed compiled with 20051020 gcc-4.0 (HEAD) segfaults

gj at pointblue dot com dot pl gcc-bugzilla@gcc.gnu.org
Fri Jan 21 02:49:00 GMT 2005


------- Additional Comments From gj at pointblue dot com dot pl  2005-01-21 02:49 -------
it looks like that in x86_64.i file: 
 
 
unsigned long bn_add_words (unsigned long *rp, unsigned long *ap, unsigned long 
*bp,int n) 
{ unsigned long ret,i; 
 
        if (n <= 0) return 0; 
 
        asm ( 
        "       subq    %2,%2           \n" 
        ".align 16                      \n" 
        "1:     movq    (%4,%2,8),%0    \n" 
        "       adcq    (%5,%2,8),%0    \n" 
        "       movq    %0,(%3,%2,8)    \n" 
        "       leaq    1(%2),%2        \n" 
        "       loop    1b              \n" 
        "       sbbq    %0,%0           \n" 
"); asm  "addq %: "+a"(ret),"+c"(n),"+r"(i) 
                : "r"(rp),"r"(ap),"r"(bp) 
                : "cc" 
        ); 
 
  return ret&1; 
} 
 
 
and in .s file: 
bn_add_words: 
.LFB11: 
        .loc 1 154 0 
        .loc 1 156 0 
.LBB25: 
        xorl    %r9d, %r9d 
        testl   %ecx, %ecx 
        jle     .L49 
        .loc 1 158 0 
#APP 
                subq    %r8,%r8 
.align 16 
1:      movq    (%rsi,%r8,8),%rax 
        adcq    (%rdx,%r8,8),%rax 
        movq    %rax,(%rdi,%r8,8) 
        leaq    1(%r8),%r8 
        loop    1b 
        sbbq    %rax,%rax 
 
#NO_APP 
        movq    %rax, %r9 
        .loc 1 172 0 
        andl    $1, %r9d 
        .loc 1 173 0 
.L49: 
.LBE25: 
        movq    %r9, %rax 
        ret 
 
 
so it looks like function written in assembler by programmer. At least to me. 
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19558



More information about the Gcc-bugs mailing list