[Bug target/37386] Interrupt service routine for arm target corrupts program counter
ramana at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed May 13 12:31:00 GMT 2009
------- Comment #2 from ramana at gcc dot gnu dot org 2009-05-13 12:31 -------
This appears to be fixed with trunk as of r147467. Can you reproduce this with
4.3 or 4.4 ? If not we can close this one out.
_Z18serial_IRQ_Routinev:
@ Interrupt Service Routine.
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
stmfd sp!, {r0, r1, r2, r3, r4, ip}
mov r2, #0
ldr r3, .L9
ldr r0, .L9+4
mov r1, r2
.L6:
ldr r4, [r3, #36]
ldr ip, [r3, #40]
cmp r4, ip
bne .L2
ldr ip, [r3, #32]
cmp ip, #0
beq .L1
.L2:
ldr ip, [r3, #32]
sub ip, ip, #1
str ip, [r3, #32]
ldr ip, [r3, #40]
ldr r4, [r3, #40]
add r4, r4, #1
str r4, [r3, #40]
ldr r4, [r3, #40]
ldrb ip, [r3, ip] @ zero_extendqisi2
cmp r4, #32
add r2, r2, #1
streq r1, [r3, #40]
cmp r2, #16
strb ip, [r0, #0]
bne .L6
.L1:
ldmfd sp!, {r0, r1, r2, r3, r4, ip}
subs pc, lr, #4
.L10:
.align 2
.L9:
--
ramana at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37386
More information about the Gcc-bugs
mailing list