SH-4 pdata Format
The Microsoft Common Object File Format (COFF) specifies a pdata section that contains an array of function table entries for exception handling, and is pointed to by the exception table entry in the image data directory. The SH-4 Calling Sequence Specification supports a PDATA structure, _IMAGE_CE_RUNTIME_FUNCTION_ENTRY, to aid in stack walking at run-time. This structure aids in debugging and exception processing.
The data structure is a table, with one entry per function except for certain types of functions that do not need the pdata. The table is stored in a .pdata section.
The following table shows the function-table entry format used for the ARM, SH-3, and SH-4 platforms.
Offset | Size | Field | Description |
---|---|---|---|
0 | 4 | Begin Address | Virtual address of the corresponding function. |
4 | 8 bits | Prolog Length | Number of instructions in the function's prolog. |
4 | 22 bits | Function Length | Number of instructions in the function. |
4 | 1 bit | 32-bit Flag | Set if the function is comprised of 32-bit instructions, cleared for a 16-bit function. |
4 | 1 bit | Exception Flag | Set if an exception handler exists for the function. |
In the event that the ExceptionFlag member of the PDATA structure is set, or the FuncLen member is set to zero, an additional PDATA_EH structure precedes the function in the .text section. The function uses PDATA_EH for associated exception handling and handler data.
In most cases, PDATA structure occupies only eight bytes per function. For functions that have an exception handler, the PDATA_EH structure requires an additional eight bytes.
The exception-handling data record and the prolog and function length record are both guaranteed to be 4-byte aligned. This implies that any function that has either or both of these records associated with it is 4-byte aligned.
See Also
SH-4 Calling Sequence Specification | SH-4 Registers | SH-4 Stack Frame Layout | SH-4 Parameter Passing | SH-4 Return Values | SH-4 Prolog and Epilog | SH-4 Assembler Macros | _IMAGE_CE_RUNTIME_FUNCTION_ENTRY
Last updated on Thursday, April 08, 2004
© 1992-2003 Microsoft Corporation. All rights reserved.