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

commits at source.squeak.org commits at source.squeak.org
Sat Jul 24 21:47:24 UTC 2021


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

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

Name: VMMaker.oscog-eem.2993
Author: eem
Time: 24 July 2021, 2:47:14.456058 pm
UUID: 303caf98-6ac4-4002-8120-41d3026bdb9f
Ancestors: VMMaker.oscog-mt.2992

cogCodeSize should be unsigned, at least to match allocateJITMemory

=============== Diff against VMMaker.oscog-mt.2992 ===============

Item was changed:
  ----- Method: CoInterpreter class>>declareCVarsIn: (in category 'translation') -----
  declareCVarsIn: aCCodeGenerator
  	"Override to avoid repeating StackInterpreter's declarations and add our own extensions"
  	self class == thisContext methodClass ifFalse: [^self]. "Don't duplicate decls in subclasses"
  	aCCodeGenerator
  		addHeaderFile:'"sqCogStackAlignment.h"';
  		addHeaderFile:'"cogmethod.h"'.
  	NewspeakVM ifTrue:
  		[aCCodeGenerator addHeaderFile:'"nssendcache.h"'].
  	aCCodeGenerator
  		addHeaderFile: (aCCodeGenerator vmClass isThreadedVM 
  			ifTrue: ['"cointerpmt.h"'] 
  			ifFalse: ['"cointerp.h"']);
  		addHeaderFile:'"cogit.h"'.
  	aCCodeGenerator vmClass
  		declareInterpreterVersionIn: aCCodeGenerator
  		defaultName: aCCodeGenerator interpreterVersion.
  	aCCodeGenerator
+ 		var: #cogCodeSize type: #usqInt;
  		var: #heapBase type: #usqInt;
  		var: #statCodeCompactionUsecs type: #usqLong;
  		var: #maxLiteralCountForCompile
  			declareC: 'sqInt maxLiteralCountForCompile = MaxLiteralCountForCompile /* ', MaxLiteralCountForCompile printString, ' */';
  		var: #minBackwardJumpCountForCompile
  			declareC: 'sqInt minBackwardJumpCountForCompile = MinBackwardJumpCountForCompile /* ', MinBackwardJumpCountForCompile printString, ' */'.
  	aCCodeGenerator
  		removeVariable: 'atCache'; "Way too much trouble than it's worth in the Cog VM"
  		removeVariable: 'reenterInterpreter'. "We can use the JIT and CFrame/StrackPointer for a lighter-weight solution."
  	aCCodeGenerator
  		var: #primTraceLogIndex type: #'unsigned char';
  		var: #primTraceLog declareC: 'sqInt primTraceLog[256]';
  		var: #traceLog
  		declareC: 'sqInt traceLog[TraceBufferSize /* ', TraceBufferSize printString, ' */]';
  		var: 'primTracePluginName' type: #'char *';
  		var: #traceSources type: #'char *' array: TraceSources.
  	aCCodeGenerator
  		var: #CFramePointer type: #'volatile usqIntptr_t';
  		var: #CStackPointer type: #'volatile usqIntptr_t';
  		var: #CReturnAddress type: #'volatile usqIntptr_t'!



More information about the Vm-dev mailing list