Question about ARM -mapcs-frame documentation

Ian Lance Taylor ian@wasabisystems.com
Sun Oct 12 03:20:00 GMT 2003


The documentation for the ARM -mapcs-frame option says this:

    @item -mapcs-frame
    @opindex mapcs-frame
    Generate a stack frame that is compliant with the ARM Procedure Call
    Standard for all functions, even if this is not strictly necessary for
    correct execution of the code.  Specifying @option{-fomit-frame-pointer}
    with this option will cause the stack frames not to be generated for
    leaf functions.  The default is @option{-mno-apcs-frame}.

This says that the default is -mno-apcs-frame.  However, the default
definition of TARGET_DEFAULT, and many of the overrides, include
ARM_FLAG_APCS_FRAME.  The exceptions I see are:
    arm*-*-linux*
    arm*-*-uclinux*
    arm*-wince-pe*
    arm-*-pe*
    strongarm-*-pe
    arm-semi-aof
    armel-semi-aof

So for other targets, I think -mapcs-frame is currently the default.
These other targets are:
    arm-*-coff*
    armel-*-coff*
    arm*-*-freebsd*
    strongarm*-*-freebsd*
    arm*-*-netbsdelf*
    arm*-*-netbsd*
    arm*-*-ecos-elf
    arm*-*-rtems*
    arm*-*-elf
    ep9312-*-elf
    arm*-*-kaos*

Is this an error in the documentation or an error in the code?

Ian



More information about the Gcc mailing list