[Vm-dev] VM Maker Inbox: VMMaker.oscog-nice.2545.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Aug 28 22:17:40 UTC 2019


Nicolas Cellier uploaded a new version of VMMaker to project VM Maker Inbox:
http://source.squeak.org/VMMakerInbox/VMMaker.oscog-nice.2545.mcz

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

Name: VMMaker.oscog-nice.2545
Author: nice
Time: 29 August 2019, 12:16:41.796378 am
UUID: 2e02d870-d945-48f6-bafa-65845194dbc7
Ancestors: VMMaker.oscog-nice.2544

Also honour getPrimitiveDoMixedArithmetic for (SmallInteger compareOp: Float) primitives

Note: i could have hacked #genSmallIntegerComparison:orDoubleComparison:invert: and test if primitiveDoMixedArithmetic there...
But I prefer to see the switch at top level rather than burried...

=============== Diff against VMMaker.oscog-nice.2544 ===============

Item was changed:
  ----- Method: CogObjectRepresentation>>genPrimitiveEqual (in category 'primitive generators') -----
  genPrimitiveEqual
+ 	^self getPrimitiveDoMixedArithmetic
+ 		ifTrue: [self 
+ 				genSmallIntegerComparison: JumpZero
+ 				orDoubleComparison: #JumpFPEqual:
+ 				invert: false]
+ 		ifFalse: [self genSmallIntegerComparison: JumpZero]!
- 	^self 
- 		genSmallIntegerComparison: JumpZero
- 		orDoubleComparison: #JumpFPEqual:
- 		invert: false!

Item was changed:
  ----- Method: CogObjectRepresentation>>genPrimitiveGreaterOrEqual (in category 'primitive generators') -----
  genPrimitiveGreaterOrEqual
+ 	^self getPrimitiveDoMixedArithmetic
+ 		ifTrue: [self
+ 				genSmallIntegerComparison: JumpGreaterOrEqual
+ 				orDoubleComparison: #JumpFPGreaterOrEqual:
+ 				invert: false]
+ 		ifFalse: [self genSmallIntegerComparison: JumpGreaterOrEqual]!
- 	^self 
- 		genSmallIntegerComparison: JumpGreaterOrEqual
- 		orDoubleComparison: #JumpFPGreaterOrEqual:
- 		invert: false!

Item was changed:
  ----- Method: CogObjectRepresentation>>genPrimitiveGreaterThan (in category 'primitive generators') -----
  genPrimitiveGreaterThan
+ 	^self getPrimitiveDoMixedArithmetic
+ 		ifTrue: [self
+ 				genSmallIntegerComparison: JumpGreater
+ 				orDoubleComparison: #JumpFPGreater:
+ 				invert: false]
+ 		ifFalse: [self genSmallIntegerComparison: JumpGreater]!
- 	^self
- 		genSmallIntegerComparison: JumpGreater
- 		orDoubleComparison: #JumpFPGreater:
- 		invert: false!

Item was changed:
  ----- Method: CogObjectRepresentation>>genPrimitiveLessOrEqual (in category 'primitive generators') -----
  genPrimitiveLessOrEqual
+ 	^self getPrimitiveDoMixedArithmetic
+ 		ifTrue: [self
+ 				genSmallIntegerComparison: JumpLessOrEqual
+ 				orDoubleComparison: #JumpFPGreaterOrEqual:
+ 				invert: false]
+ 		ifFalse: [self genSmallIntegerComparison: JumpLessOrEqual]!
- 	^self
- 		genSmallIntegerComparison: JumpLessOrEqual
- 		orDoubleComparison: #JumpFPGreaterOrEqual:
- 		invert: true!

Item was changed:
  ----- Method: CogObjectRepresentation>>genPrimitiveLessThan (in category 'primitive generators') -----
  genPrimitiveLessThan
+ 	^self getPrimitiveDoMixedArithmetic
+ 		ifTrue: [self
+ 				genSmallIntegerComparison: JumpLess
+ 				orDoubleComparison: #JumpFPGreater:
+ 				invert: true]
+ 		ifFalse: [self genSmallIntegerComparison: JumpLess]!
- 	^self
- 		genSmallIntegerComparison: JumpLess
- 		orDoubleComparison: #JumpFPGreater:
- 		invert: true!

Item was changed:
  ----- Method: CogObjectRepresentation>>genPrimitiveNotEqual (in category 'primitive generators') -----
  genPrimitiveNotEqual
+ 	^self getPrimitiveDoMixedArithmetic
+ 		ifTrue: [self 
+ 				genSmallIntegerComparison: JumpNonZero
+ 				orDoubleComparison: #JumpFPNotEqual:
+ 				invert: false]
+ 		ifFalse: [self genSmallIntegerComparison: JumpNonZero]!
- 	^self
- 		genSmallIntegerComparison: JumpNonZero
- 		orDoubleComparison: #JumpFPNotEqual:
- 		invert: false!



More information about the Vm-dev mailing list