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

commits at source.squeak.org commits at source.squeak.org
Thu Jul 10 15:58:31 UTC 2014


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

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

Name: VMMaker.oscog-eem.815
Author: eem
Time: 10 July 2014, 8:55:59.984 am
UUID: a13947a2-7c8a-400a-ba5f-043efb83746b
Ancestors: VMMaker.oscog-eem.814

Nuke the rest of the newInitializeBytecodeSet... methiods.
These experiments have migrated into the production code.

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

Item was removed:
- ----- Method: StackToRegisterMappingCogit class>>newInitializeBytecodeTableForNewspeakV4 (in category 'class initialization') -----
- newInitializeBytecodeTableForNewspeakV4
- 	"StackToRegisterMappingCogit newInitializeBytecodeTableForNewspeakV4"
- 
- 	isPushNilFunction := #v4:Is:Push:Nil:.
- 	pushNilSizeFunction := #v4PushNilSize:.
- 	NSSendIsPCAnnotated := false. "IsNSSendCall used by SendAbsentImplicit"
- 	self flag:
- 'Special selector send class must be inlined to agree with the interpreter, which
-  inlines class.  If class is sent to e.g. a general instance of ProtoObject then unless
-  class is inlined there will be an MNU.  It must be that the Cointerpreter and Cogit
-  have identical semantics.  We get away with not hardwiring the other special
-  selectors either because in the Cointerpreter they are not inlined or because they
-  are inlined only to instances of classes for which there will always be a method.'.
- 	self generatorTableFrom: #(
- 		"1 byte bytecodes"
- 		(1    0   15 genPushReceiverVariableBytecode needsFrameNever: 1)
- 		(1  16   31 genPushLiteralVariable16CasesBytecode needsFrameNever: 1)
- 		(1  32   63 genPushLiteralConstantBytecode needsFrameNever: 1)
- 		(1  64   75 genPushTemporaryVariableBytecode needsFrameIfMod16GENumArgs: 1)
- 		(1  76   76 genPushReceiverBytecode needsFrameNever: 1)
- 		(1  77   77 genExtPushPseudoVariableOrOuterBytecode)
- 		(1  78   78 genPushConstantZeroBytecode needsFrameNever: 1)
- 		(1  79   79 genPushConstantOneBytecode needsFrameNever: 1)
- 
- 		(1   80   80 genSpecialSelectorArithmetic isMapped AddRR)
- 		(1   81   81 genSpecialSelectorArithmetic isMapped SubRR)
- 		(1   82   82 genSpecialSelectorComparison isMapped JumpLess)
- 		(1   83   83 genSpecialSelectorComparison isMapped JumpGreater)
- 		(1   84   84 genSpecialSelectorComparison isMapped JumpLessOrEqual)
- 		(1   85   85 genSpecialSelectorComparison isMapped JumpGreaterOrEqual)
- 		(1   86   86 genSpecialSelectorComparison isMapped JumpZero)
- 		(1   87   87 genSpecialSelectorComparison isMapped JumpNonZero)
- 		(1   88   93 genSpecialSelectorSend isMapped)	 " #* #/ #\\ #@ #bitShift: //"
- 		(1   94   94 genSpecialSelectorArithmetic isMapped AndRR)
- 		(1   95   95 genSpecialSelectorArithmetic isMapped OrRR)
- 		(1   96 101 genSpecialSelectorSend isMapped) "#at: #at:put: #size #next #nextPut: #atEnd"
- 		(1 102 102 genSpecialSelectorEqualsEquals needsFrameNever: notMapped -1) "not mapped because it is directly inlined (for now)"
- 		(1 103 103 genSpecialSelectorClass needsFrameIfStackGreaterThanOne: notMapped 0) "not mapped because it is directly inlined (for now)"
- 		(1 104 111 genSpecialSelectorSend isMapped) "#blockCopy: #value #value: #do: #new #new: #x #y"
- 
- 		(1 112 127 genSendLiteralSelector0ArgsBytecode isMapped)
- 		(1 128 143 genSendLiteralSelector1ArgBytecode isMapped)
- 		(1 144 159 genSendLiteralSelector2ArgsBytecode isMapped)
- 		(1 160 175	genSendAbsentImplicit0ArgsBytecode isMapped)
- 
- 		(1 176 183 genStoreAndPopReceiverVariableBytecode needsFrameNever: -1) "N.B. not frameless if immutability"
- 		(1 184 191 genStoreAndPopTemporaryVariableBytecode)
- 
- 		(1 192 199 genShortUnconditionalJump	branch v3:ShortForward:Branch:Distance:)
- 		(1 200 207 genShortJumpIfTrue			branch isBranchTrue isMapped "because of mustBeBoolean"
- 													v3:ShortForward:Branch:Distance:)
- 		(1 208 215 genShortJumpIfFalse			branch isBranchFalse isMapped "because of mustBeBoolean"
- 													v3:ShortForward:Branch:Distance:)
- 
- 		(1 216 216 genReturnReceiver				return needsFrameIfInBlock: isMappedInBlock 0)
- 		(1 217 217 genReturnTopFromMethod		return needsFrameIfInBlock: isMappedInBlock -1)
- 		(1 218 218 genExtReturnTopFromBlock	return needsFrameNever: -1)
- 
- 		(1 219 219 duplicateTopBytecode			needsFrameNever: 1)
- 		(1 220 220 genPopStackBytecode			needsFrameNever: -1)
- 		(1 221 221 genExtNopBytecode			needsFrameNever: 0)
- 		(1 222 223	unknownBytecode)
- 
- 		"2 byte bytecodes"
- 		(2 224 224 extABytecode extension					needsFrameNever: 0)
- 		(2 225 225 extBBytecode extension					needsFrameNever: 0)
- 		(2 226 226 genExtPushReceiverVariableBytecode)
- 		(2 227 227 genExtPushLiteralVariableBytecode		needsFrameNever: 1)
- 		(2 228 228 genExtPushLiteralBytecode					needsFrameNever: 1)
- 		(2 229 229 genExtPushIntegerBytecode				needsFrameNever: 1)
- 		(2 230 230 genLongPushTemporaryVariableBytecode)
- 		(2 231 231 genPushNewArrayBytecode)
- 		(2 232 232 genExtStoreReceiverVariableBytecode)
- 		(2 233 233 genExtStoreLiteralVariableBytecode)
- 		(2 234 234 genLongStoreTemporaryVariableBytecode)
- 		(2 235 235 genExtStoreAndPopReceiverVariableBytecode)
- 		(2 236 236 genExtStoreAndPopLiteralVariableBytecode)
- 		(2 237 237 genLongStoreAndPopTemporaryVariableBytecode)
- 
- 		(2 238 238 genExtSendBytecode isMapped)
- 		(2 239 239 genExtSendSuperBytecode isMapped)
- 		(2 240 240 genExtSendAbsentImplicitBytecode isMapped)
- 		(2 241 241 genExtSendAbsentDynamicSuperBytecode isMapped)
- 
- 		(2 242 242 genExtUnconditionalJump	branch isMapped "because of interrupt check" v4:Long:Branch:Distance:)
- 		(2 243 243 genExtJumpIfTrue			branch isBranchTrue isMapped "because of mustBeBoolean" v4:Long:Branch:Distance:)
- 		(2 244 244 genExtJumpIfFalse			branch isBranchFalse isMapped "because of mustBeBoolean" v4:Long:Branch:Distance:)
- 
- 		(2 245 248	unknownBytecode)
- 
- 		"3 byte bytecodes"
- 		(3 249 249 callPrimitiveBytecode)
- 		(3 250 250 genPushRemoteTempLongBytecode)
- 		(3 251 251 genStoreRemoteTempLongBytecode)
- 		(3 252 252 genStoreAndPopRemoteTempLongBytecode)
- 		(3 253 253 genExtPushClosureBytecode block v4:Block:Code:Size:)
- 
- 		(3 254 255	unknownBytecode))!

Item was removed:
- ----- Method: StackToRegisterMappingCogit class>>newInitializeBytecodeTableForSqueakV3PlusClosures (in category 'class initialization') -----
- newInitializeBytecodeTableForSqueakV3PlusClosures
- 	"StackToRegisterMappingCogit newInitializeBytecodeTableForSqueakV3PlusClosures"
- 
- 	isPushNilFunction := #v3:Is:Push:Nil:.
- 	pushNilSizeFunction := #v3PushNilSize:.
- 	self flag:
- 'Special selector send class must be inlined to agree with the interpreter, which
-  inlines class.  If class is sent to e.g. a general instance of ProtoObject then unless
-  class is inlined there will be an MNU.  It must be that the Cointerpreter and Cogit
-  have identical semantics.  We get away with not hardwiring the other special
-  selectors either because in the Cointerpreter they are not inlined or because they
-  are inlined only to instances of classes for which there will always be a method.'.
- 	self generatorTableFrom: #(
- 		(1    0   15 genPushReceiverVariableBytecode needsFrameNever: 1)
- 		(1  16   31 genPushTemporaryVariableBytecode needsFrameIfMod16GENumArgs: 1)
- 		(1  32   63 genPushLiteralConstantBytecode needsFrameNever: 1)
- 		(1  64   95 genPushLiteralVariableBytecode needsFrameNever: 1)
- 		(1  96 103 genStoreAndPopReceiverVariableBytecode needsFrameNever: -1) "N.B. not frameless if immutability"
- 		(1 104 111 genStoreAndPopTemporaryVariableBytecode)
- 		(1 112 112 genPushReceiverBytecode needsFrameNever: 1)
- 		(1 113 113 genPushConstantTrueBytecode needsFrameNever: 1)
- 		(1 114 114 genPushConstantFalseBytecode needsFrameNever: 1)
- 		(1 115 115 genPushConstantNilBytecode needsFrameNever: 1)
- 		(1 116 119 genPushQuickIntegerConstantBytecode needsFrameNever: 1)
- 		"method returns in blocks need a frame because of nonlocalReturn:through:"
- 		(1 120 120 genReturnReceiver				return needsFrameIfInBlock: isMappedInBlock 0)
- 		(1 121 121 genReturnTrue					return needsFrameIfInBlock: isMappedInBlock 0)
- 		(1 122 122 genReturnFalse					return needsFrameIfInBlock: isMappedInBlock 0)
- 		(1 123 123 genReturnNil					return needsFrameIfInBlock: isMappedInBlock 0)
- 		(1 124 124 genReturnTopFromMethod		return needsFrameIfInBlock: isMappedInBlock -1)
- 		(1 125 125 genReturnTopFromBlock		return needsFrameNever: -1)
- 
- 		(1 126 127 unknownBytecode)
- 
- 		(2 128 128 extendedPushBytecode needsFrameNever: 1)
- 		(2 129 129 extendedStoreBytecode)
- 		(2 130 130 extendedStoreAndPopBytecode)
- 		(2 131 131 genExtendedSendBytecode isMapped)
- 		(3 132 132 doubleExtendedDoAnythingBytecode isMapped)
- 		(2 133 133 genExtendedSuperBytecode isMapped)
- 		(2 134 134 genSecondExtendedSendBytecode isMapped)
- 		(1 135 135 genPopStackBytecode needsFrameNever: -1)
- 		(1 136 136 duplicateTopBytecode needsFrameNever: 1)
- 
- 		(1 137 137 genPushActiveContextBytecode)
- 		(2 138 138 genPushNewArrayBytecode)
- 
- 		(1 139 139 unknownBytecode)
- 
- 		(3 140 140 genPushRemoteTempLongBytecode)
- 		(3 141 141 genStoreRemoteTempLongBytecode)
- 		(3 142 142 genStoreAndPopRemoteTempLongBytecode)
- 		(4 143 143 genPushClosureCopyCopiedValuesBytecode block v3:Block:Code:Size:)
- 
- 		(1 144 151 genShortUnconditionalJump			branch v3:ShortForward:Branch:Distance:)
- 		(1 152 159 genShortJumpIfFalse					branch isBranchFalse isMapped "because of mustBeBoolean"
- 															v3:ShortForward:Branch:Distance:)
- 		(2 160 163 genLongUnconditionalBackwardJump	branch isMapped "because of interrupt check"
- 															v3:Long:Branch:Distance:)
- 		(2 164 167 genLongUnconditionalForwardJump		branch v3:Long:Branch:Distance:)
- 		(2 168 171 genLongJumpIfTrue					branch isBranchTrue isMapped "because of mustBeBoolean"
- 															v3:LongForward:Branch:Distance:)
- 		(2 172 175 genLongJumpIfFalse					branch isBranchFalse isMapped "because of mustBeBoolean"
- 															v3:LongForward:Branch:Distance:)
- 
- 		(1 176 176 genSpecialSelectorArithmetic isMapped AddRR)
- 		(1 177 177 genSpecialSelectorArithmetic isMapped SubRR)
- 		(1 178 178 genSpecialSelectorComparison isMapped JumpLess)
- 		(1 179 179 genSpecialSelectorComparison isMapped JumpGreater)
- 		(1 180 180 genSpecialSelectorComparison isMapped JumpLessOrEqual)
- 		(1 181 181 genSpecialSelectorComparison isMapped JumpGreaterOrEqual)
- 		(1 182 182 genSpecialSelectorComparison isMapped JumpZero)
- 		(1 183 183 genSpecialSelectorComparison isMapped JumpNonZero)
- 		(1 184 189 genSpecialSelectorSend isMapped)	 " #* #/ #\\ #@ #bitShift: //"
- 		(1 190 190 genSpecialSelectorArithmetic isMapped AndRR)
- 		(1 191 191 genSpecialSelectorArithmetic isMapped OrRR)
- 		(1 192 197 genSpecialSelectorSend isMapped) "#at: #at:put: #size #next #nextPut: #atEnd"
- 		(1 198 198 genSpecialSelectorEqualsEquals needsFrameNever: notMapped -1) "not mapped because it is directly inlined (for now)"
- 		(1 199 199 genSpecialSelectorClass needsFrameIfStackGreaterThanOne: notMapped 0) "not mapped because it is directly inlined (for now)"
- 		(1 200 207 genSpecialSelectorSend isMapped) "#blockCopy: #value #value: #do: #new #new: #x #y"
- 		(1 208 223 genSendLiteralSelector0ArgsBytecode isMapped)
- 		(1 224 239 genSendLiteralSelector1ArgBytecode isMapped)
- 		(1 240 255 genSendLiteralSelector2ArgsBytecode isMapped))!



More information about the Vm-dev mailing list