Other Parts Discussed in Thread: OMAP3530
I am using CCSv4 for ARM C/C++ development for the OMAP3530.
CG Tool version TI v4.6.1
Device Variant Generic Cortex A8 Device
I have enable VFPv3 support.
I think there is an error in the compiler generated prolog and epilog code when pragma INTERRUPT is used
Please see code below generated by the compiler
#pragma INTERRUPT(FIQ)
void FiqHandler()
{
HandleFiq();
}
FiqHandler:
0x40200234: E92D400F STMFD R13!, {R0, R1, R2, R3, R14}
0x40200238: ED2D0B20 FSTMDBD R13!, {D0-D15}
0x4020023C: ED6D0B20 FSTMDBD R13!, {D16-D31}
0x40200240: E24DD004 SUB R13, R13, #4
0x40200244: EB00000E BL 0x40200284
0x40200248: E28DD004 ADD R13, R13, #4
0x4020024C: ECBD0B20 FLDMIAD R13!, {D0-D15}
0x40200250: ECFD0B20 FLDMIAD R13!, {D16-D31}
0x40200254: E8BD400F LDMFD R13!, {R0, R1, R2, R3, R14}
0x40200258: E25EF004 SUBS PC, R14, #4
The code pushes D0-D15 first but then pops it on to D16-D31. Could someone verify if this iscorrect or if there is bug in the compiler.