VM Maker: VMMaker.oscog-eem.2825.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-eem.2825.mcz

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

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

Name: VMMaker.oscog-eem.2825
Author: eem
Time: 26 September 2020, 3:07:01.119921 pm
UUID: f2473bb9-cc41-42fc-879b-7b06e8de7de7
Ancestors: VMMaker.oscog-eem.2824

Fripperies.  Add comments to those AbstractInstruction classes in-use not previously commented.  Make the multi-window browser opening utilities more helpful/complete/accurate.

=============== Diff against VMMaker.oscog-eem.2824 ===============

Item was changed:
  CogARMCompiler subclass: #CogInLineLiteralsARMCompiler
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'VMMaker-JIT'!
+
+ !CogInLineLiteralsARMCompiler commentStamp: 'eem 9/26/2020 15:02' prior: 0!
+ A CogInLineLiteralsARMCompiler is the concrete subclass of CogARMCompiler that stores literals in-line in machine-code. This code generator is not used.
+
+ Instance Variables!

Item was changed:
  CogX64Compiler subclass: #CogInLineLiteralsX64Compiler
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'VMMaker-JIT'!
+
+ !CogInLineLiteralsX64Compiler commentStamp: 'eem 9/26/2020 15:02' prior: 0!
+ A CogInLineLiteralsX64Compiler is the concrete subclass of CogX64Compiler that stores literals in-line in machine-code. This is the production code generator for x64/x86-64.
+
+ Instance Variables!

Item was changed:
  CogARMCompiler subclass: #CogOutOfLineLiteralsARMCompiler
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'VMMaker-JIT'!
+
+ !CogOutOfLineLiteralsARMCompiler commentStamp: 'eem 9/26/2020 15:03' prior: 0!
+ CogOutOfLineLiteralsARMCompiler is the concrete subclass of CogARMCompiler that stores literals out-of-line, accessed via pc-relative addressing. This is the production code generator for 32-bit ARM.
+
+ Instance Variables
+ !

Item was changed:
  CogX64Compiler subclass: #CogOutOfLineLiteralsX64Compiler
  instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'VMMaker-JIT'!
+
+ !CogOutOfLineLiteralsX64Compiler commentStamp: 'eem 9/26/2020 14:58' prior: 0!
+ A CogOutOfLineLiteralsX64Compiler is the concrete subclass of CogX64Compiler that stores literals out-of-line, accessed via pc-relative addressing.  This code generator is not used.
+
+ Instance Variables!

Item was changed:
  ----- Method: VMClass class>>initialize (in category 'initialization') -----
  initialize
  InitializationOptions ifNil: [InitializationOptions := Dictionary new].
  ExpensiveAsserts := false.
  (Smalltalk classNamed: #Utilities) ifNotNil:
  [:utilitiesClass|
  (utilitiesClass classPool at: #CommonRequestStrings ifAbsent: []) ifNotNil:
  [:commonRequestStringHolder|
  (commonRequestStringHolder contents asString includesSubstring: 'VMClass open') ifFalse:
+ [Utilities appendToCommonRequests: '-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMMaker generateAllSpurConfigurations\VMClass openCogSpurMultiWindowBrowser\VMClass openCogV3MultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser\VMClass openSpurMultiWindowBrowser\VMClass openCogitMultiWindowBrowser' withCRs]]]!
- [Utilities appendToCommonRequests: '-\VMMaker generateConfiguration\VMMaker generateAllConfigurationsUnderVersionControl\VMMaker generateAllSpurConfigurations\VMClass openCogMultiWindowBrowser\VMClass openObjectMemoriesInterpretersBrowser\VMClass openSpurMultiWindowBrowser\VMClass openCogSpurMultiWindowBrowser\VMClass openCogitMultiWindowBrowser' withCRs]]]!

Item was removed:
- ----- Method: VMClass class>>openCogMultiWindowBrowser (in category 'utilities') -----
- openCogMultiWindowBrowser
- "Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
- | b |
- b := Browser open.
- #( ObjectMemory NewObjectMemory NewCoObjectMemory
- InterpreterPrimitives StackInterpreter StackInterpreterPrimitives CoInterpreter CoInterpreterPrimitives CoInterpreterMT
- Cogit SimpleStackBasedCogit StackToRegisterMappingCogit
- VMStructType VMMaker CCodeGenerator TMethod)
- do: [:className|
- (Smalltalk classNamed: className) ifNotNil:
- [:class| b selectCategoryForClass: class; selectClass: class]]
- separatedBy:
- [b multiWindowState addNewWindow].
- b multiWindowState selectWindowIndex: 1!

Item was changed:
  ----- Method: VMClass class>>openCogSpurMultiWindowBrowser (in category 'utilities') -----
  openCogSpurMultiWindowBrowser
+ "Answer a new multi-window browser on the SpurMemoryManager classes, the Cog Interpreter classes, and the main JIT classes"
- "Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
  | b |
  b := Browser open.
  #( SpurMemoryManager Spur32BitMemoryManager Spur32BitCoMemoryManager
  Spur64BitMemoryManager Spur64BitCoMemoryManager SpurGenerationScavenger
  InterpreterPrimitives StackInterpreter StackInterpreterPrimitives CoInterpreter CoInterpreterPrimitives CoInterpreterMT
+ Cogit SimpleStackBasedCogit StackToRegisterMappingCogit RegisterAllocatingCogit
- Cogit SimpleStackBasedCogit StackToRegisterMappingCogit
  CogObjectRepresentation CogObjectRepresentationForSpur
  CogObjectRepresentationFor32BitSpur CogObjectRepresentationFor64BitSpur
+ CogRTLOpcodes CogAbstractRegisters CogAbstractInstruction),
+ (self sortedAbstractInstructionClasses collect: [:class| class name]),
+ #(VMStructType VMMaker CCodeGenerator TMethod)
+ do: [:classOrClassName|
+ (Smalltalk classNamed: classOrClassName) ifNotNil:
- VMStructType VMMaker CCodeGenerator TMethod)
- do: [:className|
- (Smalltalk classNamed: className) ifNotNil:
  [:class| b selectCategoryForClass: class; selectClass: class]]
  separatedBy:
  [b multiWindowState addNewWindow].
  b multiWindowState selectWindowIndex: 1!

Item was added:
+ ----- Method: VMClass class>>openCogV3MultiWindowBrowser (in category 'utilities') -----
+ openCogV3MultiWindowBrowser
+ "Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
+ | b |
+ b := Browser open.
+ #( ObjectMemory NewObjectMemory NewCoObjectMemory
+ InterpreterPrimitives StackInterpreter StackInterpreterPrimitives CoInterpreter CoInterpreterPrimitives CoInterpreterMT
+ Cogit SimpleStackBasedCogit StackToRegisterMappingCogit
+ VMStructType VMMaker CCodeGenerator TMethod)
+ do: [:className|
+ (Smalltalk classNamed: className) ifNotNil:
+ [:class| b selectCategoryForClass: class; selectClass: class]]
+ separatedBy:
+ [b multiWindowState addNewWindow].
+ b multiWindowState selectWindowIndex: 1!

Item was changed:
  ----- Method: VMClass class>>openCogitMultiWindowBrowser (in category 'utilities') -----
  openCogitMultiWindowBrowser
  "Answer a new multi-window browser on the ObjectMemory classes, the Cog Interpreter classes, and the main JIT classes"
  "self openCogitMultiWindowBrowser"
  | b |
  b := Browser open.
  {CogRTLOpcodes. CogAbstractRegisters },
+ self sortedAbstractInstructionClasses,
- (CogAbstractInstruction withAllSubclasses reject: [:c| c name endsWith: 'Tests']),
  Cogit withAllSubclasses,
  {CogMethodZone },
  CogObjectRepresentation withAllSubclasses,
- (CogAbstractInstruction withAllSubclasses reject: [:c| c name endsWith: 'Tests']),
  CogBytecodeFixup withAllSubclasses,
  CogSimStackEntry withAllSubclasses,
  {VMStructType. VMMaker. CCodeGenerator. TMethod}
  do: [:class|
  b selectCategoryForClass: class; selectClass: class]
  separatedBy:
  [b multiWindowState addNewWindow].
  b multiWindowState selectWindowIndex: 1!

Item was added:
+ ----- Method: VMClass class>>sortedAbstractInstructionClasses (in category 'utilities') -----
+ sortedAbstractInstructionClasses
+ "Answer the in-use processor classes in a rational order."
+ ^((CogAbstractInstruction subclasses sort: [:ca :cb| ca ISA <= cb ISA])
+ collect: [:class| class = class defaultCompilerClass ifTrue: [{class}] ifFalse: [{class. class defaultCompilerClass}]]) fold: [:a :b| a, b]!