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

commits at source.squeak.org commits at source.squeak.org
Mon Nov 30 23:59:04 UTC 2015


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1535.mcz

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

Name: VMMaker.oscog-eem.1535
Author: eem
Time: 30 November 2015, 3:57:15.946 pm
UUID: eceebca6-4bc3-4640-b1eb-18e0ea917247
Ancestors: VMMaker.oscog-rmacnak.1534

Fix maybeInlinePositive32BitIntegerFor: and hence positive64BitIntegerFor: for values that look like 32-bit negative SmallIntegers.

Nuke broken and obsoleted by Tim's new CPIC the DumpJump*: Cogit assembler ops.

=============== Diff against VMMaker.oscog-rmacnak.1534 ===============

Item was removed:
- ----- Method: Cogit>>DumpJumpLong: (in category 'abstract instructions') -----
- DumpJumpLong: jumpTarget
- 	"Convenience conflation of JumpLong: & dumpLiterals for PIC generation.
- 	 Literals must be dumped early and often to keep each PIC case the same size."
- 	<inline: true>
- 	<returnTypeC: #'AbstractInstruction *'>
- 	| inst |
- 	<var: 'inst' type: #'AbstractInstruction *'>
- 	inst := self gen: JumpLong operand: jumpTarget asInteger.
- 	literalsManager dumpLiterals: false.
- 	^inst!

Item was removed:
- ----- Method: Cogit>>DumpJumpLongZero: (in category 'abstract instructions') -----
- DumpJumpLongZero: jumpTarget
- 	"Convenience conflation of JumpLongZero: & dumpLiterals for PIC generation.
- 	 Literals must be dumped early and often to keep each PIC case the same size."
- 	<inline: true>
- 	<returnTypeC: #'AbstractInstruction *'>
- 	| inst |
- 	<var: 'inst' type: #'AbstractInstruction *'>
- 	inst := self gen: JumpLongZero operand: jumpTarget asInteger.
- 	literalsManager dumpLiterals: false.
- 	^inst!

Item was changed:
  ----- Method: StackInterpreter>>maybeInlinePositive32BitIntegerFor: (in category 'primitive support') -----
  maybeInlinePositive32BitIntegerFor: integerValue
  	"N.B. will *not* cause a GC.
  	 integerValue is interpreted as POSITIVE, e.g. as the result of Bitmap>at:."
  	<notOption: #Spur64BitMemoryManager>
  	| newLargeInteger |
  	self deny: objectMemory hasSixtyFourBitImmediates.
+ 	(integerValue asInteger >= 0
- 	(integerValue >= 0
  	 and: [objectMemory isIntegerValue: integerValue]) ifTrue:
  		[^objectMemory integerObjectOf: integerValue].
  	newLargeInteger := objectMemory
  							eeInstantiateSmallClassIndex: ClassLargePositiveIntegerCompactIndex
  							format: (objectMemory byteFormatForNumBytes: 4)
  							numSlots: 1.
  	self cppIf: VMBIGENDIAN
  		ifTrue:
  			[objectMemory
  				storeByte: 3 ofObject: newLargeInteger withValue: (integerValue >> 24 bitAnd: 16rFF);
  				storeByte: 2 ofObject: newLargeInteger withValue: (integerValue >> 16 bitAnd: 16rFF);
  				storeByte: 1 ofObject: newLargeInteger withValue: (integerValue >>   8 bitAnd: 16rFF);
  				storeByte: 0 ofObject: newLargeInteger withValue: (integerValue ">> 0" bitAnd: 16rFF)]
  		ifFalse:
  			[objectMemory storeLong32: 0 ofObject: newLargeInteger withValue: integerValue].
  	^newLargeInteger!



More information about the Vm-dev mailing list