VM Maker: Cog-eem.366.mcz

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

VM Maker: Cog-eem.366.mcz

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

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

Name: Cog-eem.366
Author: eem
Time: 20 November 2019, 12:02:56.315619 pm
UUID: 0fba899e-be71-42c3-a2f3-0b81930bdcad
Ancestors: Cog-eem.365

Move error codes up to the abstract superclass in the CogProcessorAlien hierarchy.

=============== Diff against Cog-eem.365 ===============

Item was changed:
  CogProcessorAlien variableByteSubclass: #BochsIA32Alien
  instanceVariableNames: ''
+ classVariableNames: 'ExtendedOpcodeExceptionMap OpcodeExceptionMap'
- classVariableNames: 'ExtendedOpcodeExceptionMap OpcodeExceptionMap PostBuildStackDelta'
  poolDictionaries: ''
  category: 'Cog-Processors'!
 
  !BochsIA32Alien commentStamp: '<historical>' prior: 0!
  I am a wrapper around the Bochs C++ IA32 CPU emulator.  Note that currently I provide no access to the x87/mmx FPU state, only providing access to the SSE/xmm registers.
 
  Here is the configure script for the configuration this code assumes.  Offsets of fields will change with different configurations so they must agree.
 
  ----8<---- conf.COG ----8<----
  #!!/bin/sh
 
  # this sets up the compile for Cog.  Disable as much inessential stuff
  # as possible leaving only the cpu/fpu & memory interface
 
  set echo
  # CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays $CFLAGS"
  CFLAGS="-m32 $CFLAGS"
  CFLAGS="-Dlongjmp=_longjmp -Dsetjmp=_setjmp $CFLAGS"
  CFLAGS="-pipe -O3 -fomit-frame-pointer -finline-functions $CFLAGS"
  CFLAGS="-g $CFLAGS"
  CPATH="/sw/include"
  CPPFLAGS=""
  CXXFLAGS="$CFLAGS"
  LDFLAGS="-L/sw/lib"
 
  export CFLAGS
  export CPATH
  export CPPFLAGS
  export CXXFLAGS
  export LDFLAGS
 
  ./configure --enable-Cog \
  --enable-cpu-level=6 \
  --enable-sse=2 \
  --enable-assert-checks \
  --with-nogui \
  --disable-x86-64 \
  --disable-pae \
  --disable-large-pages \
  --disable-global-pages \
  --disable-mtrr \
  --disable-sb16 \
  --disable-ne2000 \
  --disable-pci \
  --disable-acpi \
  --disable-apic \
  --disable-clgd54xx \
  --disable-usb \
  --disable-plugins \
  ${CONFIGURE_ARGS}
 
  # apic == Advanced programmable Interrupt Controller
  # acpi == Advanced Configuration and Power Interface
  # pci == Peripheral Component Interconnect local bus
  # clgd54xx == Cirrus Logic GD54xx video card
  ----8<---- conf.COG ----8<----!

Item was changed:
  CogProcessorAlien variableByteSubclass: #BochsX64Alien
  instanceVariableNames: ''
+ classVariableNames: 'ExtendedOpcodeExceptionMap OpcodeExceptionMap'
- classVariableNames: 'ExtendedOpcodeExceptionMap OpcodeExceptionMap PostBuildStackDelta'
  poolDictionaries: ''
  category: 'Cog-Processors'!
 
  !BochsX64Alien commentStamp: 'eem 12/5/2017 14:27' prior: 0!
  I am a wrapper around the Bochs C++ x86_64 CPU emulator.!

Item was changed:
  Alien variableByteSubclass: #CogProcessorAlien
  instanceVariableNames: ''
+ classVariableNames: 'BadCPUInstance ExecutionError InstructionPrefetchError MemoryBoundsError NoError PanicError PostBuildStackDelta PrintCodeBytes PrintTempNames ReceiverResultRegDereference SavedState SomethingLoggedError UnsupportedOperationError'
- classVariableNames: 'PrintCodeBytes PrintTempNames ReceiverResultRegDereference SavedState'
  poolDictionaries: ''
  category: 'Cog-Processors'!
 
  !CogProcessorAlien commentStamp: 'lw 8/23/2012 19:15' prior: 0!
  I am the superclass for the Simulation CPU instance wrappers. I ensure that methods used in both/all of them need not be copied.!

Item was changed:
  ----- Method: CogProcessorAlien class>>initialize (in category 'class initialization') -----
  initialize
  PrintCodeBytes ifNil: [PrintCodeBytes := true].  "Does disassembly include code bytes?"
  PrintTempNames ifNil: [PrintTempNames := false].  "Does disassembly include temp names?"
  SavedState := WeakIdentityKeyDictionary new.
  Smalltalk
  addToStartUpList: self;
+ addToShutDownList: self.
+
+ PostBuildStackDelta := 0.
+
+ "Plugin primitive error codes."
+ NoError := 0.
+ ExecutionError := 1.
+ BadCPUInstance := 2.
+ MemoryBoundsError := 3.
+ PanicError := 4.
+ UnsupportedOperationError := 5.
+ SomethingLoggedError := 6.
+ InstructionPrefetchError := 7!
- addToShutDownList: self!

Item was changed:
  CogProcessorAlien variableByteSubclass: #GdbARMAlien
  instanceVariableNames: ''
+ classVariableNames: 'LongConstReg LongConstStep LongConstValue'
- classVariableNames: 'BadCPUInstance ExecutionError InstructionPrefetchError LongConstReg LongConstStep LongConstValue MemoryLoadBoundsError MemoryWriteBoundsError NoError PanicError PostBuildStackDelta SomethingLoggedError UnsupportedOperationError'
  poolDictionaries: ''
  category: 'Cog-Processors'!
 
  !GdbARMAlien commentStamp: 'eem 12/15/2018 14:31' prior: 0!
  I am a wrapper around the ARMulator CPU instance and emulator routines and I give access to disassembling using libopcodes. My C-part must be compiled with -DMODET, because otherwise my offsets are wrong by one field.!

Item was removed:
- ----- Method: GdbARMAlien class>>initialize (in category 'class initialization') -----
- initialize
- "GdbARMAlien initialize"
-
- PostBuildStackDelta := 0.
-
- "Return errors from GdbARMPlugin.h"
- NoError := 0.
- ExecutionError := 1.
- BadCPUInstance := 2.
- MemoryLoadBoundsError := 3.
- MemoryWriteBoundsError := 4.
- InstructionPrefetchError := 5.
- PanicError := 6.
- UnsupportedOperationError := 7.
- SomethingLoggedError := 8!

Item was changed:
  CogProcessorAlien variableByteSubclass: #GdbARMv8Alien
  instanceVariableNames: ''
+ classVariableNames: ''
- classVariableNames: 'BadCPUInstance ExecutionError InstructionPrefetchError MemorBoundsError NoError PanicError SomethingLoggedError UnsupportedOperationError'
  poolDictionaries: ''
  category: 'Cog-Processors'!
 
  !GdbARMv8Alien commentStamp: 'eem 11/19/2019 15:39' prior: 0!
  I am a wrapper around the struct sim aarch64 CPU instance and emulator routines and I give access to disassembling using libopcodes.!

Item was removed:
- ----- Method: GdbARMv8Alien class>>initialize (in category 'class initialization') -----
- initialize
- "GdbARMv8Alien initialize"
-
- "Return errors from GdbARMv8Plugin.h"
- NoError := 0.
- ExecutionError := 1.
- BadCPUInstance := 2.
- MemorBoundsError := 3.
- "MemoryWriteBoundsError := 4."
- InstructionPrefetchError := 5.
- PanicError := 6.
- UnsupportedOperationError := 7.
- SomethingLoggedError := 8!