SPRAB89A September 2011 – March 2014
The C6000 has the following ABI-specified personality routines. The first three have the same format as the ARM EABI. The following table specifies the personality routines and their PR indexes.
PR Index (bits 27-24) | Personality | Routine Name | Unwind Instructions | Width of Scope Fields | Notes |
---|---|---|---|---|---|
0000 | PR0 (Su16) | _ _C6000_unwind_cpp_pr0 | Up to 3 one-byte instructions | 16 | |
0001 | PR1 (Lu16) | _ _C6000_unwind_cpp_pr1 | Unlimited onebyte instructions | 16 | |
0010 | PR2 (Lu32) | _ _C6000_unwind_cpp_pr2 | Unlimited onebyte instructions | 32 | Must be used if 16-bit scope fields will not reach |
0011 | PR3 | _ _C6000_unwind_cpp_pr3 | 24 bits | 16 | Optimized C6x-specific unwinding format |
0100 | PR4 | _ _C6000_unwind_cpp_pr4 | 24 bits | 16 | Same as PR3, but the function epilog uses the alternate C64x+ compact frame layout. |
When using compact model EXTAB entries, a relocatable file must explicitly indicate which routines it depends on by including a reference from the EXTAB's section to the corresponding personality routine symbol, in the form of a R_C6000_NONE relocation.