From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26842 invoked by alias); 17 May 2003 02:56:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 26820 invoked by uid 71); 17 May 2003 02:56:01 -0000 Date: Sat, 17 May 2003 02:56:00 -0000 Message-ID: <20030517025601.26819.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Dara Hazeghi Subject: Re: target/6039: [ARM] interrupt attribute generats wrong code Reply-To: Dara Hazeghi X-SW-Source: 2003-05/txt/msg01927.txt.bz2 List-Id: The following reply was made to PR target/6039; it has been noted by GNATS. From: Dara Hazeghi To: tori@unhappy.mine.nu, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org Cc: Subject: Re: target/6039: [ARM] interrupt attribute generats wrong code Date: Fri, 16 May 2003 19:48:47 -0700 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- trail&database=gcc&pr=6039 Hello, gcc 3.0.4 and 3.1 cvs are rather ancient at this point. Would it be possible for you to check whether this problem is still present. I don't know much about arm assembly, but this is what 3.3 produces: .file "junk.c" .text .align 2 .global foo .type foo, %function foo: @ Interrupt Service Routine. @ args = 0, pretend = 0, frame = 12 @ frame_needed = 1, uses_anonymous_args = 0 str ip, [sp, #-4]! mov ip, sp sub lr, lr, #4 stmfd sp!, {r0, r1, r2, r3, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #12 mov r3, #0 str r3, [fp, #-40] mov r3, #0 str r3, [fp, #-44] ldr r2, [fp, #-40] ldr r3, [fp, #-44] add r3, r2, r3 str r3, [fp, #-48] bl bar ldmea fp, {r0, r1, r2, r3, fp, ip, pc}^ .size foo, .-foo .ident "GCC: (GNU) 3.3 20030508 (prerelease)" gcc mainline produces: .file "junk.c" .text .align 2 .global foo .type foo, %function foo: @ Interrupt Service Routine. @ args = 0, pretend = 0, frame = 12 @ frame_needed = 1, uses_anonymous_args = 0 str ip, [sp, #-4]! mov ip, sp stmfd sp!, {r0, r1, r2, r3, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #12 mov r3, #0 str r3, [fp, #-40] mov r3, #0 str r3, [fp, #-44] ldr r2, [fp, #-40] ldr r3, [fp, #-44] add r3, r2, r3 str r3, [fp, #-48] bl bar ldmea fp, {r0, r1, r2, r3, fp, sp, lr} ldmfd sp!, {ip} subs pc, lr, #4 .size foo, .-foo .ident "GCC: (GNU) 3.4 20030508 (experimental)" Can you confirm if these are correct? Thanks, Dara