VM Maker: VMMaker.oscog-nice.2578.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-nice.2578.mcz

commits-2
 
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]!