Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: 1675e3586bbef2ff198e683ea7839ac1b41fa491 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1675e3586bbef2ff198e683ea7839ac1b41fa491 Author: Eliot Miranda <[hidden email]> Date: 2017-02-09 (Thu, 09 Feb 2017) Changed paths: M nsspur64src/vm/cogit.h M nsspur64src/vm/cogitX64.c M nsspur64src/vm/cointerp.c M nsspur64src/vm/cointerp.h M nsspur64src/vm/gcc3x-cointerp.c M nsspursrc/vm/cogit.h M nsspursrc/vm/cogitARMv5.c M nsspursrc/vm/cogitIA32.c M nsspursrc/vm/cogitMIPSEL.c M nsspursrc/vm/cointerp.c M nsspursrc/vm/cointerp.h M nsspursrc/vm/gcc3x-cointerp.c M nsspurstack64src/vm/gcc3x-interp.c M nsspurstack64src/vm/interp.c M nsspurstacksrc/vm/gcc3x-interp.c M nsspurstacksrc/vm/interp.c M spur64src/vm/cogit.h M spur64src/vm/cogitX64.c M spur64src/vm/cointerp.c M spur64src/vm/cointerp.h M spur64src/vm/gcc3x-cointerp.c M spursista64src/vm/cogit.h M spursista64src/vm/cogitX64.c M spursista64src/vm/cointerp.c M spursista64src/vm/cointerp.h M spursista64src/vm/gcc3x-cointerp.c M spursistasrc/vm/cogit.h M spursistasrc/vm/cogitARMv5.c M spursistasrc/vm/cogitIA32.c M spursistasrc/vm/cogitMIPSEL.c M spursistasrc/vm/cointerp.c M spursistasrc/vm/cointerp.h M spursistasrc/vm/gcc3x-cointerp.c M spursrc/vm/cogit.h M spursrc/vm/cogitARMv5.c M spursrc/vm/cogitIA32.c M spursrc/vm/cogitMIPSEL.c M spursrc/vm/cointerp.c M spursrc/vm/cointerp.h M spursrc/vm/gcc3x-cointerp.c M spurstack64src/vm/gcc3x-interp.c M spurstack64src/vm/interp.c M spurstacksrc/vm/gcc3x-interp.c M spurstacksrc/vm/interp.c M src/vm/cogit.h M src/vm/cogitARMv5.c M src/vm/cogitIA32.c M src/vm/cogitMIPSEL.c M src/vm/cointerp.c M src/vm/cointerp.h M src/vm/cointerpmt.c M src/vm/cointerpmt.h M src/vm/gcc3x-cointerp.c M src/vm/gcc3x-cointerpmt.c M stacksrc/vm/gcc3x-interp.c M stacksrc/vm/interp.c Log Message: ----------- CogVM source as per VMMaker.oscog-eem.2126 StackInterpreter: Fixed a bug where the CogVMFeatureFlags were converted twice to SmallInteger (in getCogVMFeatureFlags and in primitiveVMParameter), shifting 1 time too many the flags. Hence MULTIPLEBYTECODESETS flag was always true in the image while SUPPORTSWRITEBARRIER was true only if the VM supported multiple bytecode set. SpurMemoryManager: add a VM parameter to collect the time spent in compaction (a subset of the time spent in fullGC). Make printOopsFrom:to: skip free space instead of printing an empty object every 16 bytes. Add printOopsSuchThat: for debugging. Have printEntity: print header flags for puns also. Cogit: Refactor fixupAt: & initializeFixupAt: to take bytecode PCs not indexes. Add fixupAtIndex: as the method that takes an index. Refactor sends of ensure[NonMerge]FixupAt:, moving the ever-present "- initialPC" into ensure[NonMerge]FixupAt:. Fixed a bug in read-only object where the attemptToAssign:withIndex: call-back would be called with a 1-based index by the interpreter and 0-based index by the JIT. Everybody now calls it with 1-based index. Rename offsetCacheTagAndCouldBeObjectAt:annotation:into: to the more accurate entryCacheTagAndCouldBeObjectAt:annotation:into: and extract entryPointTagIsSelector: for use below. Fix the check for valid selectors for 64-bits (unlinked cacheTags are literal/specialSelector indices) in checkIfValidOopRefAndTarget:pc:cogMethod:. Add leak checking of CogMethod counters and implicit reveiver caches. SistaCogit: Fix coging optimized methods with lots of literals. Decode a method header when doing longPrintOop:. Fix the ssFlushTo: call in genExtJumpIfNotInstanceOfBehaviorsBytecode Use Spur's single-bit tests for immediates in the CogObjectRepresetationFor??BitSpur's branchIf:has[Not]ImmediateTag:target: Fix conditional branches following inline primitive comparisons given the branch following logic. The unconditional branch following can only be elided if jumping to the bytecode following the conditional branch, which may no longer be the case with branch following. To this end refactor nextDescriptorAndExtensionsInto: into nextDescriptorExtensionsAndNextPCInto:. Changed the machine code compilation of BranchIfInstanceOf if there is one Behavior and the behavior is UndefinedObject, True or False to compile to a direct comparison to the unique instances instead of class index check. I am not sure it makes sense to add these cases when there are multiple behaviors. Added a new trampoline to create new hashes. Unfortunately I did not succeed in using the trampoline in the existing primitives, so I made the trampoline Sista only and it's used in the inlined primitive. Newspeak/Slang: Fix printDecodeMethodHeaderOop: for the Newspeak VM. Add type inferrence for TBraceNode, including casting the default value to a pointer type in var := expr caseOf: { ... }. Slang: Don't localize globals that are used in only one funciton if they are only written to. Such variables are typically for debugging (observation). Commit: 92e1340dae91e40aebc0e03b017b7c4702019729 https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/92e1340dae91e40aebc0e03b017b7c4702019729 Author: Eliot Miranda <[hidden email]> Date: 2017-02-14 (Tue, 14 Feb 2017) Changed paths: M nsspur64src/vm/cogit.h M nsspur64src/vm/cogitX64.c M nsspur64src/vm/cointerp.c M nsspur64src/vm/cointerp.h M nsspur64src/vm/gcc3x-cointerp.c M nsspursrc/vm/cogit.h M nsspursrc/vm/cogitARMv5.c M nsspursrc/vm/cogitIA32.c M nsspursrc/vm/cogitMIPSEL.c M nsspursrc/vm/cointerp.c M nsspursrc/vm/cointerp.h M nsspursrc/vm/gcc3x-cointerp.c M nsspurstack64src/vm/gcc3x-interp.c M nsspurstack64src/vm/interp.c M nsspurstacksrc/vm/gcc3x-interp.c M nsspurstacksrc/vm/interp.c M spur64src/vm/cogit.h M spur64src/vm/cogitX64.c M spur64src/vm/cointerp.c M spur64src/vm/cointerp.h M spur64src/vm/gcc3x-cointerp.c M spursista64src/vm/cogit.h M spursista64src/vm/cogitX64.c M spursista64src/vm/cointerp.c M spursista64src/vm/cointerp.h M spursista64src/vm/gcc3x-cointerp.c M spursistasrc/vm/cogit.h M spursistasrc/vm/cogitARMv5.c M spursistasrc/vm/cogitIA32.c M spursistasrc/vm/cogitMIPSEL.c M spursistasrc/vm/cointerp.c M spursistasrc/vm/cointerp.h M spursistasrc/vm/gcc3x-cointerp.c M spursrc/vm/cogit.h M spursrc/vm/cogitARMv5.c M spursrc/vm/cogitIA32.c M spursrc/vm/cogitMIPSEL.c M spursrc/vm/cointerp.c M spursrc/vm/cointerp.h M spursrc/vm/gcc3x-cointerp.c M spurstack64src/vm/gcc3x-interp.c M spurstack64src/vm/interp.c M spurstacksrc/vm/gcc3x-interp.c M spurstacksrc/vm/interp.c M src/vm/cogit.h M src/vm/cogitARMv5.c M src/vm/cogitIA32.c M src/vm/cogitMIPSEL.c M src/vm/cointerp.c M src/vm/cointerp.h M src/vm/cointerpmt.c M src/vm/cointerpmt.h M src/vm/gcc3x-cointerp.c M src/vm/gcc3x-cointerpmt.c M stacksrc/vm/gcc3x-interp.c M stacksrc/vm/interp.c Log Message: ----------- CogVM source as per VMMaker.oscog-eem.2129 InterpreterPrimitives: Fix slip in primitiveSmallFloatSquareRoot Simplify the boxed and immediate unary float primitives to do less stack manipulations and/or primFailCode testing. 64-bit Cogit: Fix a regression in CogX64Compiler>>concretizeConvertRRd and a bug in CogX64Compiler>>concretizeConvertRdR. Fix a bug in genPrimitiveSmallFloatSquareRoot. The primitive must fail for negative arguments. Cogit: Fix some C compilation warnings due to mismatched pointer types. (Slang) Get methods that return AbstractInstructions to be inlinable. StackToRegisterMappingCogit: Simplify genForwardersInlinedIdenticalOrNotIf: to avoid an extra call of genEnsureOopInRegNotForwarded:... Generate slightly better code in genSpecialSelectorComparison Squash jump L1; nop; L1 to nop; nop (again as part of jump following). Don't bother to inline genEnsureOopInRegNotForwarded:scratchReg:ifForwarder: ifNotForwarder:, but do inline genEnsureOopInRegNotForwarded:scratchReg: jumpBackTo: which is simply a call of the other. Commit: 7037091c011bbb601c7f718ce111332af5c86f6c https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/7037091c011bbb601c7f718ce111332af5c86f6c Author: Eliot Miranda <[hidden email]> Date: 2017-02-14 (Tue, 14 Feb 2017) Changed paths: M .travis.yml A build.linux32x86/pharo.cog.spur.lowcode/build.assert.itimerheartbeat/mvm A build.linux32x86/pharo.cog.spur.lowcode/build.assert/mvm A build.linux32x86/pharo.cog.spur.lowcode/build.debug.itimerheartbeat/mvm A build.linux32x86/pharo.cog.spur.lowcode/build.debug/mvm A build.linux32x86/pharo.cog.spur.lowcode/build.itimerheartbeat/mvm A build.linux32x86/pharo.cog.spur.lowcode/build/mvm A build.linux32x86/pharo.cog.spur.lowcode/makeallclean A build.linux32x86/pharo.cog.spur.lowcode/makealldirty A build.linux32x86/pharo.cog.spur.lowcode/plugins.ext A build.linux32x86/pharo.cog.spur.lowcode/plugins.int A build.linux32x86/pharo.stack.spur.lowcode/build.assert.itimerheartbeat/mvm A build.linux32x86/pharo.stack.spur.lowcode/build.assert/mvm A build.linux32x86/pharo.stack.spur.lowcode/build.debug.itimerheartbeat/mvm A build.linux32x86/pharo.stack.spur.lowcode/build.debug/mvm A build.linux32x86/pharo.stack.spur.lowcode/build.itimerheartbeat/mvm A build.linux32x86/pharo.stack.spur.lowcode/build/mvm A build.linux32x86/pharo.stack.spur.lowcode/makeallclean A build.linux32x86/pharo.stack.spur.lowcode/makealldirty A build.linux32x86/pharo.stack.spur.lowcode/plugins.ext A build.linux32x86/pharo.stack.spur.lowcode/plugins.int A build.macos32x86/pharo.cog.spur.lowcode/Makefile A build.macos32x86/pharo.cog.spur.lowcode/mvm A build.macos32x86/pharo.cog.spur.lowcode/plugins.ext A build.macos32x86/pharo.cog.spur.lowcode/plugins.int A build.macos32x86/pharo.stack.spur.lowcode/Makefile A build.macos32x86/pharo.stack.spur.lowcode/mvm A build.macos32x86/pharo.stack.spur.lowcode/plugins.ext A build.macos32x86/pharo.stack.spur.lowcode/plugins.int M build.macos32x86/pharo.stack.spur/Makefile A build.macos64x64/pharo.cog.spur.lowcode/Makefile A build.macos64x64/pharo.cog.spur.lowcode/mvm A build.macos64x64/pharo.cog.spur.lowcode/plugins.ext A build.macos64x64/pharo.cog.spur.lowcode/plugins.int A build.macos64x64/pharo.stack.spur.lowcode/Makefile A build.macos64x64/pharo.stack.spur.lowcode/mvm A build.macos64x64/pharo.stack.spur.lowcode/plugins.ext A build.macos64x64/pharo.stack.spur.lowcode/plugins.int A build.macos64x64/pharo.stack.spur/Makefile A build.macos64x64/pharo.stack.spur/mvm A build.macos64x64/pharo.stack.spur/plugins.ext A build.macos64x64/pharo.stack.spur/plugins.int A build.win32x86/pharo.cog.spur.lowcode/Makefile A build.win32x86/pharo.cog.spur.lowcode/Pharo.def.in A build.win32x86/pharo.cog.spur.lowcode/Pharo.exe.manifest A build.win32x86/pharo.cog.spur.lowcode/Pharo.ico A build.win32x86/pharo.cog.spur.lowcode/Pharo.rc A build.win32x86/pharo.cog.spur.lowcode/mvm A build.win32x86/pharo.cog.spur.lowcode/plugins.ext A build.win32x86/pharo.cog.spur.lowcode/plugins.int A build.win32x86/squeak.cog.spur.lowcode/Croquet.def.in A build.win32x86/squeak.cog.spur.lowcode/Croquet.exe.manifest A build.win32x86/squeak.cog.spur.lowcode/Croquet.ico A build.win32x86/squeak.cog.spur.lowcode/Croquet.rc A build.win32x86/squeak.cog.spur.lowcode/GreenCogSqueak.ico A build.win32x86/squeak.cog.spur.lowcode/Makefile A build.win32x86/squeak.cog.spur.lowcode/Squeak.def.in A build.win32x86/squeak.cog.spur.lowcode/Squeak.exe.manifest A build.win32x86/squeak.cog.spur.lowcode/Squeak.rc A build.win32x86/squeak.cog.spur.lowcode/mvm A build.win32x86/squeak.cog.spur.lowcode/plugins.ext A build.win32x86/squeak.cog.spur.lowcode/plugins.int A build.win32x86/squeak.cog.spur.lowcode/squeak.ico M platforms/Cross/plugins/IA32ABI/x64ia32abicc.c M platforms/Cross/vm/sqLowcodeFFI-i386.h M platforms/Cross/vm/sqLowcodeFFI-x86_64.h M platforms/Cross/vm/sqMemoryAccess.h M platforms/iOS/vm/Common/Classes/sqSqueakMainApplication+attributes.m M platforms/unix/vm/sqConfig.h M specs/lowcode.xml A spurlowcode64src/examplePlugins.ext A spurlowcode64src/examplePlugins.int A spurlowcode64src/vm/cogit.c A spurlowcode64src/vm/cogit.h A spurlowcode64src/vm/cogitX64.c A spurlowcode64src/vm/cogmethod.h A spurlowcode64src/vm/cointerp.c A spurlowcode64src/vm/cointerp.h A spurlowcode64src/vm/exampleSqNamedPrims.h A spurlowcode64src/vm/gcc3x-cointerp.c A spurlowcode64src/vm/interp.h A spurlowcode64src/vm/vmCallback.h A spurlowcodesrc/examplePlugins.ext A spurlowcodesrc/examplePlugins.int A spurlowcodesrc/vm/cogit.c A spurlowcodesrc/vm/cogit.h A spurlowcodesrc/vm/cogitARMv5.c A spurlowcodesrc/vm/cogitIA32.c A spurlowcodesrc/vm/cogitMIPSEL.c A spurlowcodesrc/vm/cogmethod.h A spurlowcodesrc/vm/cointerp.c A spurlowcodesrc/vm/cointerp.h A spurlowcodesrc/vm/exampleSqNamedPrims.h A spurlowcodesrc/vm/gcc3x-cointerp.c A spurlowcodesrc/vm/interp.h A spurlowcodesrc/vm/vmCallback.h A spurlowcodestack64src/examplePlugins.ext A spurlowcodestack64src/examplePlugins.int A spurlowcodestack64src/vm/exampleSqNamedPrims.h A spurlowcodestack64src/vm/gcc3x-interp.c A spurlowcodestack64src/vm/interp.c A spurlowcodestack64src/vm/interp.h A spurlowcodestack64src/vm/vmCallback.h A spurlowcodestacksrc/examplePlugins.ext A spurlowcodestacksrc/examplePlugins.int A spurlowcodestacksrc/vm/exampleSqNamedPrims.h A spurlowcodestacksrc/vm/gcc3x-interp.c A spurlowcodestacksrc/vm/interp.c A spurlowcodestacksrc/vm/interp.h A spurlowcodestacksrc/vm/vmCallback.h Log Message: ----------- Merge branch 'Cog' of http://www.github.com/opensmalltalk/vm into Cog Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/e7268a6b24e6...7037091c011b |
Free forum by Nabble | Edit this page |