From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28589 invoked by alias); 21 Aug 2007 15:33:16 -0000 Received: (qmail 27352 invoked by uid 48); 21 Aug 2007 15:32:46 -0000 Date: Tue, 21 Aug 2007 15:33:00 -0000 Message-ID: <20070821153246.27351.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/33138] [4.3 Regression] rejects valid? assembler, segfaults In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "tbm at cyrius dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-08/txt/msg01482.txt.bz2 ------- Comment #1 from tbm at cyrius dot com 2007-08-21 15:32 ------- typedef unsigned long int word64; extern word64 tiger_table[4 * 256]; tiger_compress (word64 * str, word64 state[3]) { { register word64 a, b, c; word64 aa, bb, cc; word64 x0, x1, x2, x3, x4, x5, x6, x7; b = ((word64 *) state)[1]; bb = b; cc = c; __asm__ (" movl %10, %%ebx \n" " movq %11, %%rcx \n" " movq %13, %%rdx \n" " movq %6, %%r8 \n" " xorq %%r8, %2 \n" " andq %2, %%rbx \n" " andq %2, %%rcx \n" " andq %2, %%rdx \n" " shrl $(16-3), %%ebx \n" " shrq $(32-3), %%rcx \n" " shrq $(48-3), %%rdx \n" " movzbl %2b, %%eax \n" " movzwl %2w, % %edi \n" " movq (%7,%%rax,8), %%rsi \n" " shrl $(8), %%edi \n" " movq %2, %% rax \n" " xorq (2048*1)(%7,%%rbx), %%rsi \n" " movq %2, %%rbx \n" " shrl $24, %%eax \n" " andq %12, %%rbx \n" " xorq (2048*2)(%7,%%rcx), %%rsi \n" " shrq $(40-3), %%rbx \n" " movq %2, %%rcx \n" " xorq (2048*3)(%7,%%rdx), %%rsi \n" " movq (2048*3)(%7,%%rdi,8), %%rdx \n" " shrq $56, %%rcx \n" " xorq (2048* 2)(%7,%%rax,8), %%rdx \n" " xorq (2048*1)(%7,%%rbx), %%rdx \n" " subq %%rsi, %0 \n" " xorq (%7,%%rcx,8), %%rdx \n" " addq %%rdx, %1 \n" "leaq (%1,%1,8), %1\n": "+r" (c), "+r" (a), "+r" (b): "r" (c), "r" (a), "r" (b), "m" (x7), "r" (&tiger_table), "i" (0xFFL), "i" (0 xFF00L), "i" (0xFF0000L), "r" (0xFF00000000LL), "r" (0xFF0000000000LL), "r" (0xFF000000000000LL):"3", "%rax", "%rbx", "%rcx", "%rdx", "%rsi", "%edi", "%r8"); { } b -= bb; c += cc; ((word64 *) state)[1] = b; ((word64 *) state)[2] = c; }; } tiger_t (word64 * str, word64 length, word64 res[3]) { } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33138