[squeak-dev] New Cog VMs available
Eliot Miranda
eliot.miranda at gmail.com
Sun Jul 19 05:26:56 UTC 2015
... at http://www.mirandabanda.org/files/Cog/VM/VM.r3410
Note that there's a functional 64-bit Spur Linux StackInterpreter included
with these VMs and a 64-bit image to test at
http://mirandabanda.org/files/Cog/SpurImages.
CogVM binaries as per VMMaker.oscog-eem.1427/r3410
General:
Implement a machine code perform:[with:]* primitive. Eliminate the
duplication
of
SimpleStackBasedCogit/StackToRegisterMappingCogit>>compileOpenPIC:numArgs:
now that we have dead code elimination enabled.
Change the type of the event buffer from int[8] to long[8], along with the
matching event typedefs in sq.h (fixes 64-bit SPur issues). Add a fence
before
reading checkSignalRequests and useTideA in doSignalExternalSemaphores.
ARM
Include the Alien support in the Squeak ARM VMs now that it works to a fair
extent in Newspeak.
ARM Cogits:
Use __aeabit_idivmod to implement machine code div/mod primitives on ARM.
64-bit Spur
Fix at least one set of 64-bit issues caused by Slang. In particular the
integerObjectOf: code resulted in
(objectMemory integerObjectOf: MillisecondClockMask)
evaluating to the -1 object, instead of the 16r1FFFFFFF object, which was
the
cause of the initially nresponsive 64-bit image on the real VM.
Newspeak:
Compile Newspeak self and super sends as clean sends as well.
Slower in monomorphic case but net win for the larger benchmarks, presumably
because it avoids I-cache flushes in the polymorphic case.
Also means implementing polymorphic caches for clean sends will benefit all
non-ordinary sends.
DeltaBlue +8.2%
Splay +7.6%
ParserCombinators +4.7%
Richards +0.5%
SlotRead (replaced with self send) -17.6%
Spill ReceiverResultReg before runtime call to fix pushEnclosingObject on
ARM.
(ReceiverResultReg is edx/caller-saved on IA32 but r7/callee-saved on ARM.)
Fix some primitiveFail[For:] calls in potential mirror primitives that did
not
return after falure, and could hence continue to do damage after detecting a
failure condition.
Fix the 64-bit Newspeak builds' plugins.ext
Integrate Ryan's code for ARM call-out and callback support in the Alien
plugin.
Implement the relevant implicitReceiveCacheAt: for the ARM Cogits.
ThreadedFFIPlugin:
Allow ffiCreateIntegralResultOop:ofAtomicType:in: to be inlined. Reduce the
number of tests leading to the common case of an integral return in
ffiCalloutTo:SpecOnStack:in: etc.
Refactor the remapOop:in: idiom up into InterpreterPlugin and use it in the
ThreadedFFIPlugin. Hence avoid unnecessary push/popRemappableOop calls.
--
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150718/3fc3005f/attachment.htm
More information about the Squeak-dev
mailing list
|