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

commits at source.squeak.org commits at source.squeak.org
Fri Nov 8 09:35:05 UTC 2019


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

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

Name: VMMaker.oscog-nice.2578
Author: nice
Time: 8 November 2019, 10:34:03.398565 am
UUID: 351979c3-56f7-4b7a-9d89-6f43f169d5a1
Ancestors: VMMaker.oscog-nice.2577

Oups, better fix for generated directed super send only when BytecodeSetHasDirectedSuperSend

The code generated when BytecodeSetHasDirectedSuperSend was true did contain a double return:

	return result;
	return 0;

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

Item was changed:
  ----- Method: SimpleStackBasedCogit>>genSendDirectedSuper:numArgs: (in category 'bytecode generator support') -----
  genSendDirectedSuper: selectorIndex numArgs: numArgs
  	<inline: false>
+ 	<option: #BytecodeSetHasDirectedSuperSend>
  	"N.B. genPushLiteralVariableGivenDirectedSuper: has already loaded tempOop with the association."
+ 	
+ 	| result |
+ 	result := self
+ 				genSend: selectorIndex
+ 				numArgs: numArgs
+ 				sendTable: (directedSendUsesBinding
+ 								ifTrue: [directedSuperBindingSendTrampolines]
+ 								ifFalse: [directedSuperSendTrampolines]).
+ 	directedSendUsesBinding := false.
+ 	^result!
- 	BytecodeSetHasDirectedSuperSend
- 		ifTrue:
- 			[| result |
- 			result := self
- 						genSend: selectorIndex
- 						numArgs: numArgs
- 						sendTable: (directedSendUsesBinding
- 										ifTrue: [directedSuperBindingSendTrampolines]
- 										ifFalse: [directedSuperSendTrampolines]).
- 			directedSendUsesBinding := false.
- 			^result]!

Item was changed:
  ----- Method: StackToRegisterMappingCogit>>genSendDirectedSuper:numArgs: (in category 'bytecode generator support') -----
  genSendDirectedSuper: selectorIndex numArgs: numArgs
+ 	<option: #BytecodeSetHasDirectedSuperSend>
+ 	| result |
+ 	self assert: self ssTop type = SSConstant.
+ 	tempOop := self ssTop constant.
+ 	self ssPop: 1.
+ 	self marshallSendArguments: numArgs.
+ 	result := self
+ 				genMarshalledSend: selectorIndex
+ 				numArgs: numArgs
+ 				sendTable: (directedSendUsesBinding
+ 								ifTrue: [directedSuperBindingSendTrampolines]
+ 								ifFalse: [directedSuperSendTrampolines]).
+ 	directedSendUsesBinding := false.
+ 	^result!
- 	BytecodeSetHasDirectedSuperSend
- 		ifTrue:
- 			[| result |
- 			self assert: self ssTop type = SSConstant.
- 			tempOop := self ssTop constant.
- 			self ssPop: 1.
- 			self marshallSendArguments: numArgs.
- 			result := self
- 						genMarshalledSend: selectorIndex
- 						numArgs: numArgs
- 						sendTable: (directedSendUsesBinding
- 										ifTrue: [directedSuperBindingSendTrampolines]
- 										ifFalse: [directedSuperSendTrampolines]).
- 			directedSendUsesBinding := false.
- 			^result]!



More information about the Vm-dev mailing list