At 06:07 PM 9/25/2001 -0700, Benjamin Stuhl wrote:
>Just to make sure that it's making the _right_ sense, the
>fixup section is basically our single level of indirection
>so that we can make the bytecode itself be
>position-independant, right?
Yup.
>But why store it in this
>format? What we really need to store is the list of what we
>expect in the table and where.
We have 8 bytes per entry. We can store a lot in there. :)
>Can't we just have the bytecode header
>have
>
>int32 *data_template;
>int32 fixup_space_needed;
>
>and build the final table as needed?
If we do that, the fixup section won't be part of the same section of
memory as the bytecode, which means we'll need to touch at least some of
the actual bytecode so we can set the absolute address of the fixups.
Sticking it on the end means we can access it relatively, and padding to 8k
means the section should start on its own memory page so we won't be making
a private copy of anything but the fixup section.
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
[EMAIL PROTECTED] have teddy bears and even
teddy bears get drunk