From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11209 invoked by alias); 27 May 2010 07:13:01 -0000 Received: (qmail 11126 invoked by uid 48); 27 May 2010 07:12:43 -0000 Date: Thu, 27 May 2010 07:13:00 -0000 Message-ID: <20100527071243.11125.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/44290] arm linux kernel crahes when built with -fipa-sra In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "raj dot khem at gmail 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: 2010-05/txt/msg02987.txt.bz2 ------- Comment #2 from raj dot khem at gmail dot com 2010-05-27 07:12 ------- here is diff of two assembly outputs $ diff copypage-v4wb.s copypage-v4wb.no-ipa-sra.S -u --- copypage-v4wb.s 2010-05-27 00:11:03.130607878 -0700 +++ copypage-v4wb.no-ipa-sra.S 2010-05-27 00:10:54.790615578 -0700 @@ -120,19 +120,30 @@ v4wb_copy_user_highpage: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - mov r1, sp - bic r4, r1, #8128 + stmfd sp!, {r4, r5, r6, lr} + mov ip, sp + bic r4, ip, #8128 bic r4, r4, #63 - ldr r1, [r4, #4] - add r1, r1, #1 - str r1, [r4, #4] - ldr r1, [r4, #4] - add r1, r1, #1 - str r1, [r4, #4] - ldr r1, [r3, #0] - ldr r1, [r1, #332] - tst r1, #1 + ldr ip, [r4, #4] + add ip, ip, #1 + str ip, [r4, #4] + ldr ip, .L8 + ldr lr, [r4, #4] + ldr r6, [ip, #0] + add lr, lr, #1 + rsb r6, r6, r0 + mov r6, r6, asr #5 + mov r6, r6, asl #12 + add r6, r6, #-1073741824 + str lr, [r4, #4] + ldr r5, [ip, #0] + ldr r0, [r3, #0] + rsb r5, r5, r1 + ldr r0, [r0, #332] + mov r5, r5, asr #5 + mov r5, r5, asl #12 + tst r0, #1 + add r5, r5, #-1073741824 beq .L6 bic r2, r2, #4080 bic r0, r2, #15 @@ -140,6 +151,8 @@ ldr r2, [r3, #20] bl arm926_flush_user_cache_range .L6: + mov r0, r6 + mov r1, r5 bl v4wb_copy_user_page ldr r3, [r4, #4] sub r3, r3, #1 @@ -147,7 +160,11 @@ ldr r3, [r4, #4] sub r3, r3, #1 str r3, [r4, #4] - ldmfd sp!, {r4, pc} + ldmfd sp!, {r4, r5, r6, pc} +.L9: + .align 2 +.L8: + .word mem_map .size v4wb_copy_user_highpage, .-v4wb_copy_user_highpage .global v4wb_user_fns .section .init.data,"aw",%progbits -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44290