[Vm-dev] VM Maker: VMMaker.oscog-eem.2825.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Sep 26 22:07:10 UTC 2020
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]!
More information about the Vm-dev
mailing list