[Vm-dev] Missing method in VMMaker-oscog-IgorStasenko.122
Igor Stasenko
siguctua at gmail.com
Fri Aug 26 12:31:42 UTC 2011
On 26 August 2011 03:11, Dimitry Golubovsky <golubovsky at gmail.com> wrote:
>
> Hi,
>
> Stack interpreter does not compile because the method
>
> noInlineTemporary: offset in: theFP
>
> defined only in CoIntepreter, yet it is called from StackInterpreter:
>
yes, we need to fix that, but i haven't time to do it right now :)
Thanks.
> ------------------------------------------------------------------------------------------
>
> stObject: array at: index
> "Return what ST would return for <obj> at: index."
>
> | hdr fmt totalLength fixedFields stSize |
> <inline: false>
> hdr := objectMemory baseHeader: array.
> fmt := objectMemory formatOfHeader: hdr.
> totalLength := objectMemory lengthOf: array baseHeader: hdr format: fmt.
> fixedFields := objectMemory fixedFieldsOf: array format: fmt length:
> totalLength.
> (fmt = 3 and: [self isContextHeader: hdr])
> ifTrue:
> [stSize := self fetchStackPointerOf: array.
> ((self oop: index isGreaterThanOrEqualTo: 1)
> and: [(self oop: index isLessThanOrEqualTo: stSize)
> and: [self isStillMarriedContext: array]]) ifTrue:
> [^self noInlineTemporary: index - 1 in: (self
> frameOfMarriedContext: array)]] " <---- here"
> ifFalse: [stSize := totalLength - fixedFields].
> ((self oop: index isGreaterThanOrEqualTo: 1)
> and: [self oop: index isLessThanOrEqualTo: stSize])
> ifTrue: [^self subscript: array with: (index + fixedFields) format: fmt]
> ifFalse: [self primitiveFailFor: PrimErrBadIndex. ^ 0]
>
> ------------------------------------------------------------------------------------------
>
> Thanks.
>
> --
> Dimitry Golubovsky
>
> Anywhere on the Web
>
--
Best regards,
Igor Stasenko AKA sig.
More information about the Vm-dev
mailing list