From fdcbdb08d85fa272ae2c0218277159cb8de3b461 Mon Sep 17 00:00:00 2001 From: cwang <cwang> Date: Fri, 6 Aug 2004 21:35:20 +0000 Subject: [PATCH] Make the format of function object up-to-date for x86/sparc/amd64 --- docs/internals/object.tex | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/internals/object.tex b/docs/internals/object.tex index f520b22c0..64914a912 100644 --- a/docs/internals/object.tex +++ b/docs/internals/object.tex @@ -536,6 +536,9 @@ C --> **************************************************************** | Offset from code header (24) | Function-Header-Type (8) | ---------------------------------------------------------------- +| x86/amd64/sparc: Address of start of instructions for | +| function (non-descriptor) | +| other architectures: | | Self-pointer back to previous word (with other-pointer tag) | ---------------------------------------------------------------- | Pointer to next function (other-pointer low-tag) or NIL | @@ -592,6 +595,13 @@ The following are detailed slot descriptions: The immediate header-word data is the word offset from the enclosing code data-block's header-word to this word. This is the same as for the return-PC header-word. + \item[Address of start of instructions for function:] This is + implemented on x86, amd64, and sparc only. In a non-closure + function, this address allows the call sequence to always + indirect through the second word in a user callable function. + See section ``Closure Format''. With a closure, indirecting + through the second word also gets you the start of instructions + of a function. This pointer is a raw address, not a descriptor. \item[Self-pointer back to header-word:] In a non-closure function, this self-pointer to the previous header-word allows the call sequence to always indirect through the second word in a -- GitLab