[Vm-dev] instructionPointer offsets in #primitiveBlockCopy
reefedjib at yahoo.com
Thu Nov 8 18:44:24 UTC 2007
I am trying to understand the offsets with the instructionPointer when
computing the initialIP for the new block being created in
#primitiveBlockCopy. I have a couple of questions that hopefully someone
can help me answer.
Here is the code:
initialIP := self integerObjectOf: (instructionPointer+1+3) -
"Was instructionPointer + 3, but now it's greater by 1 due to
Of the +1+3 adjustment being made to the IP, the +1 is for preIncrement. Is
the IP pointing to the current byte or the one before? I don't understand
how preIncrement is affecting things.
Of the +3 part, is it skipping 1 byte for the
<C8> send: blockCopy:
and 2 bytes for the long jump?
I have introduce an extra long jump and some blocks are big enough to use
them with my macro changes. I need to account for a possible 4 byte extra
long jump in block creation.
More information about the Vm-dev