8 lines
337 B
C
8 lines
337 B
C
|
// Given a function pointer, return the code address.
|
||
|
// If the plabel bit is set, mask it off and return the code from the
|
||
|
// first word of the function descriptor. Otherwise, the function
|
||
|
// pointer is the code address.
|
||
|
|
||
|
#define UNWRAP_FUNCTION_DESCRIPTOR(X) \
|
||
|
(((unsigned int)(X)) & 2 ? *(void **)(((unsigned int)(X)) & ~3) : (X))
|