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! |
Free forum by Nabble | Edit this page |