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

commits at source.squeak.org commits at source.squeak.org
Fri Jun 26 20:49:42 UTC 2015


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

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

Name: VMMaker.oscog-eem.1387
Author: eem
Time: 26 June 2015, 1:47:11.51 pm
UUID: 62775273-e462-4d31-9c0b-d66d8db48cb1
Ancestors: VMMaker.oscog-tpr.1386

Nuke obsolete inline prim bytecode

=============== Diff against VMMaker.oscog-tpr.1386 ===============

Item was removed:
- ----- Method: StackInterpreter>>inlinePrimitiveBytecode: (in category 'miscellaneous bytecodes') -----
- inlinePrimitiveBytecode: primIndex
- 	"SistaV1:	248		11111000 	iiiiiiii		mjjjjjjj		Call Primitive #iiiiiiii + (jjjjjjj * 256) m=1 means inlined primitive, no hard return after execution."
- 	<option: #SistaVM>
- 	| result result64 |
- 	primIndex caseOf: {
- 		"0	unchecked SmallInteger #+.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[0]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															+ (objectMemory integerValueOf: self internalStackTop)).
- 				 self internalPop: 1; internalStackTopPut: result].
- 		"1	unchecked SmallInteger #-.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[1]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															- (objectMemory integerValueOf: self internalStackTop)).
- 				 self internalPop: 1; internalStackTopPut: result].
- 		"2	unchecked SmallInteger #*.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[2]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															* (objectMemory integerValueOf: self internalStackTop)).
- 				 self internalPop: 1; internalStackTopPut: result].
- 		"3	unchecked SmallInteger #/.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[3]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															/ (objectMemory integerValueOf: self internalStackTop)).
- 				 self internalPop: 1; internalStackTopPut: result].
- 		"4	unchecked SmallInteger #//.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[4]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															// (objectMemory integerValueOf: self internalStackTop)).
- 				 self internalPop: 1; internalStackTopPut: result].
- 		"5	unchecked SmallInteger #\\.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[5]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															\\ (objectMemory integerValueOf: self internalStackTop)).
- 				 self internalPop: 1; internalStackTopPut: result].
- 		"6	unchecked SmallInteger #quo:.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[6]	->	[| rcvr arg |
- 				 rcvr := objectMemory integerValueOf: (self internalStackValue: 1).
- 				 arg := objectMemory integerValueOf: self internalStackTop.
- 				 result := self quot: rcvr ient: arg.
- 				 self internalPop: 1; internalStackTopPut: (objectMemory integerObjectOf: result)].
- 
- 		"16	unchecked SmallInteger #bitAnd:.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[16]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															bitAnd: (objectMemory integerValueOf: self internalStackTop)).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"17	unchecked SmallInteger #bitOr:.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[17]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															bitOr: (objectMemory integerValueOf: self internalStackTop)).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"18	unchecked SmallInteger #bitXor:.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[18]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															bitXor: (objectMemory integerValueOf: self internalStackTop)).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"19	unchecked SmallInteger #bitShift:.  Both arguments are SmallIntegers and the result fits in a SmallInteger (* depends on word size)"
- 		[19]	->	[result := objectMemory integerObjectOf: ((objectMemory integerValueOf: (self internalStackValue: 1))
- 															bitShift: (objectMemory integerValueOf: self internalStackTop)).
- 					 self internalPop: 1; internalStackTopPut: result].
- 
- 		"32	unchecked SmallInteger #>.  Both arguments are SmallIntegers"
- 		[32]	->	[result := objectMemory booleanObjectOf: ((self internalStackValue: 1) > self internalStackTop).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"33	unchecked SmallInteger #<.  Both arguments are SmallIntegers"
- 		[33]	->	[result := objectMemory booleanObjectOf: ((self internalStackValue: 1) < self internalStackTop).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"34	unchecked SmallInteger #>=.  Both arguments are SmallIntegers"
- 		[34]	->	[result := objectMemory booleanObjectOf: ((self internalStackValue: 1) >= self internalStackTop).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"35	unchecked SmallInteger #<=.  Both arguments are SmallIntegers"
- 		[35]	->	[result := objectMemory booleanObjectOf: ((self internalStackValue: 1) <= self internalStackTop).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"36	unchecked SmallInteger #=.  Both arguments are SmallIntegers"
- 		[36]	->	[result := objectMemory booleanObjectOf: ((self internalStackValue: 1) = self internalStackTop).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"37	unchecked SmallInteger #~=.  Both arguments are SmallIntegers"
- 		[37]	->	[result := objectMemory booleanObjectOf: ((self internalStackValue: 1) ~= self internalStackTop).
- 					 self internalPop: 1; internalStackTopPut: result].
- 
- 		"64	unchecked Pointer Object>>at:.		The receiver is guaranteed to be a pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger"
- 		[64]	->	[result := objectMemory
- 									fetchPointer: (objectMemory integerValueOf: self internalStackTop)
- 									ofObject: (self internalStackValue: 1).
- 					 self internalPop: 1; internalStackTopPut: result].
- 		"65	unchecked Byte Object>>at:.			The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The result is a SmallInteger."
- 		[65]	->	[result := objectMemory
- 									fetchByte: (objectMemory integerValueOf: self internalStackTop)
- 									ofObject: (self internalStackValue: 1).
- 					 self internalPop: 1; internalStackTopPut: (objectMemory integerObjectOf: result)].
- 		"66	unchecked Word Object>>at:.			The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The result is a SmallInteger."
- 		[66]	->	[result := objectMemory
- 									fetchShort16: (objectMemory integerValueOf: self internalStackTop)
- 									ofObject: (self internalStackValue: 1).
- 					 self internalPop: 1; internalStackTopPut: (objectMemory integerObjectOf: result)].
- 		"67	unchecked DoubleWord Object>>at:.	The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The result is a SmallInteger or a LargePositiveInteger."
- 		[67]	->	[result := objectMemory
- 									fetchLong32: (objectMemory integerValueOf: self internalStackTop)
- 									ofObject: (self internalStackValue: 1).
- 					 self internalPop: 1; internalStackTopPut: (self signed64BitValueOf: result)].
- 		"68	unchecked QuadWord Object>>at:.		The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The result is a SmallInteger or a LargePositiveInteger."
- 		[68]	->	[result64 := objectMemory
- 									fetchLong64: (objectMemory integerValueOf: self internalStackTop)
- 									ofObject: (self internalStackValue: 1).
- 					 self internalPop: 1; internalStackTopPut: (self signed64BitValueOf: result)].
- 
- 		"80	unchecked Pointer Object>>at:put:.			The receiver is guaranteed to be a pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger"
- 		[80]	->	[result := self internalStackTop.
- 					 objectMemory
- 						storePointer: (objectMemory integerValueOf: (self internalStackValue: 1))
- 						ofObject: (self internalStackValue: 2)
- 						withValue: result.
- 					 self internalPop: 2; internalStackTopPut: result].
- 		"81	unchecked Byte Object>>at:put:.			The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The argument is a SmallInteger.  The primitive stores the least significant 8 bits."
- 		[81]	->	[result := self internalStackTop.
- 					 objectMemory
- 						storeByte: (objectMemory integerValueOf: (self internalStackValue: 1))
- 						ofObject: (self internalStackValue: 2)
- 						withValue: (objectMemory integerValueOf: result).
- 					 self internalPop: 2; internalStackTopPut: result].
- 		"82	unchecked Word Object>>at:put:.			The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The argument is a SmallInteger.  The primitive stores the least significant 16 bits."
- 		[82]	->	[result := self internalStackTop.
- 					 objectMemory
- 						storeShort16: (objectMemory integerValueOf: (self internalStackValue: 1))
- 						ofObject: (self internalStackValue: 2)
- 						withValue: (objectMemory integerValueOf: result).
- 					 self internalPop: 2; internalStackTopPut: result].
- 		"83	unchecked DoubleWord Object>>at:put:.	The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The argument is a SmallInteger.  The primitive stores the least significant 32 bits."
- 		[83]	->	[result := self internalStackTop.
- 					 objectMemory
- 						storeLong32: (objectMemory integerValueOf: (self internalStackValue: 1))
- 						ofObject: (self internalStackValue: 2)
- 						withValue: (objectMemory integerValueOf: result).
- 					 self internalPop: 2; internalStackTopPut: result].
- 		"84	unchecked QuadWord Object>>at:put:.		The receiver is guaranteed to be a non-pointer object.  The 0-relative (1-relative?) index is an in-range SmallInteger.  The argument is a SmallInteger.  The primitive stores the least significant 64 bits."
- 		[84]	->	[result := self internalStackTop.
- 					 objectMemory
- 						storeLong64: (objectMemory integerValueOf: (self internalStackValue: 1))
- 						ofObject: (self internalStackValue: 2)
- 						withValue: (objectMemory integerValueOf: result).
- 					 self internalPop: 2; internalStackTopPut: result] }
- 	otherwise:
- 		[localIP := localIP - 3.
- 		 self respondToUnknownBytecode]!



More information about the Vm-dev mailing list