Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1926.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1926 Author: eem Time: 31 August 2016, 12:34:22.439536 pm UUID: e25b6c8f-9742-4011-a948-d27ae483a098 Ancestors: VMMaker.oscog-cb.1925
Comment the register saving convention for the context inst var access trampolines in the JIT.
=============== Diff against VMMaker.oscog-cb.1925 ===============
Item was changed: ----- Method: Cogit>>generateRunTimeTrampolines (in category 'initialization') ----- generateRunTimeTrampolines "Generate the run-time entries at the base of the native code zone and update the base." ceSendMustBeBooleanAddFalseTrampoline := self genMustBeBooleanTrampolineFor: objectMemory falseObject called: 'ceSendMustBeBooleanAddFalseTrampoline'. ceSendMustBeBooleanAddTrueTrampoline := self genMustBeBooleanTrampolineFor: objectMemory trueObject called: 'ceSendMustBeBooleanAddTrueTrampoline'. ceNonLocalReturnTrampoline := self genNonLocalReturnTrampoline. ceCheckForInterruptTrampoline := self genCheckForInterruptsTrampoline. + "Neither of the context inst var access trampolines save registers. Their operation could cause + arbitrary update of stack frames, so the assumption is that callers flush the stack before calling + the context inst var access trampolines, and that everything except the result is dead afterwards." ceFetchContextInstVarTrampoline := self genTrampolineFor: #ceContext:instVar: called: 'ceFetchContextInstVarTrampoline' arg: ReceiverResultReg arg: SendNumArgsReg result: SendNumArgsReg. ceStoreContextInstVarTrampoline := self genTrampolineFor: #ceContext:instVar:value: called: 'ceStoreContextInstVarTrampoline' arg: ReceiverResultReg arg: SendNumArgsReg arg: ClassReg result: ReceiverResultReg. "to keep ReceiverResultReg live.". ceCannotResumeTrampoline := self genTrampolineFor: #ceCannotResume called: 'ceCannotResumeTrampoline'. "These two are unusual; they are reached by return instructions." ceBaseFrameReturnTrampoline := self genReturnTrampolineFor: #ceBaseFrameReturn: called: 'ceBaseFrameReturnTrampoline' arg: ReceiverResultReg. ceReturnToInterpreterTrampoline := self genReturnTrampolineFor: #ceReturnToInterpreter: called: 'ceReturnToInterpreterTrampoline' arg: ReceiverResultReg!
vm-dev@lists.squeakfoundation.org