[Vm-dev] VM Maker: VMMaker.oscog-eem.1669.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Jan 25 04:16:04 UTC 2016

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

==================== Summary ====================

Name: VMMaker.oscog-eem.1669
Author: eem
Time: 25 January 2016, 8:14:23.991725 pm
UUID: fb59e89d-14ad-4bad-a231-40f2d4f05dae
Ancestors: VMMaker.oscog-eem.1668

Fix regression in StackInterpreters from VMMaker.oscog-eem.1665. It's primitiveFail, not primitiveFailed...

=============== Diff against VMMaker.oscog-eem.1668 ===============

Item was changed:
  ----- Method: StackInterpreter>>install:inAtCache:at:string: (in category 'indexing primitive support') -----
  install: rcvr inAtCache: cache at: atIx string: stringy
  	"Attempt to install the oop of this object in the given cache (at or atPut),
  	 along with its size, format and fixedSize. Answer if this was successful."
  	| hdr fmt totalLength fixedFields |
  	<inline: true>
  	<var: #cache type: 'sqInt *'>
  	self assert: (objectMemory isContext: rcvr) not.
  	hdr := objectMemory baseHeader: rcvr.
  	fmt := objectMemory formatOfHeader: hdr.
  	"For now the AtCache code doesn't support 16-bit indexability."
  	(objectMemory hasSpurMemoryManagerAPI
  	and: [fmt between: objectMemory firstShortFormat and: objectMemory firstByteFormat - 1]) ifTrue:
+ 		[^self primitiveFail].
- 		[^self primitiveFailed].
  			[totalLength := objectMemory lengthOf: rcvr baseHeader: hdr format: fmt.
  			 fixedFields := 0.
  			 fmt := fmt + objectMemory firstStringyFakeFormat]  "special flag for strings"
  			[(fmt = objectMemory indexablePointersFormat and: [objectMemory isContextHeader: hdr]) ifTrue:
  				["Contexts must not be put in the atCache, since their size is not constant"
  				self primitiveFailFor: PrimErrBadReceiver.
  			 totalLength := objectMemory lengthOf: rcvr baseHeader: hdr format: fmt.
  			 fixedFields := objectMemory fixedFieldsOf: rcvr format: fmt length: totalLength].
  	cache at: atIx+AtCacheOop put: rcvr.
  	cache at: atIx+AtCacheFmt put: fmt.
  	cache at: atIx+AtCacheFixedFields put: fixedFields.
  	cache at: atIx+AtCacheSize put: totalLength - fixedFields.

More information about the Vm-dev mailing list