New Cog VMs available

12 views
Skip to first unread message

Eliot Miranda

unread,
Jun 1, 2015, 4:53:31 PM6/1/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com

CogVM binaries as per VMMaker.oscog-eem.1331/r3364

General:
Merge with Pharo (with VMMaker.oscog-EstebanLorenzano.1322).  Changes are null
to Squeak VM.  Pulled in are conditionally compiled changes for directory &
file creation (added ceration permissions) and to macro used to read image
file (for iPhone).

Cogit:
Test the outerContext and method for sanity in the machine code closure value
primitive(s).  Spur must check to fail in the presence of forwarders.

To support the primitive provide TstCqR support on x86 (already exists on ARM),
and use it to implement genJumpImmediate: et al.

Use the new genJumpImmediate: et al in various basic access primitives.  Good
for a 5%-10% increase in 0 tinyBenchmarks on Spur.

Guard access to the inline cache tag in PICs in
GC routines by inlineCacheTagsMayBeObjects.

Spur:
Spur must follow forwarders in machine code before it follows forwarders in
stack pages (since stack page parsing examines methods).

Further, closed PICs that refer to unmarked objects must be discarded in
freeUnmarkedMachineCode.  And closedPICRefersToUnmarkedObject: should guard
against an immediate selector.
-- 
best,
Eliot

Eliot Miranda

unread,
Jun 1, 2015, 10:16:54 PM6/1/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com

CogVM source as per VMMaker.oscog-eem.1332/r3365

Newspeak Cogit:
Fix the regression in implicit receiver sends caused by VMMaker.oscog-eem.1317
(fix to performance regression caused by using XCHG on x86).

The implicit receiver cache uses SendNumArgsReg to refer to the cache object.
Hence we must use TempReg for genPushRegisterArgsForNumArgs: in this case.
So refactor to genPushRegisterArgsForNumArgs:scratchReg:, passing either
TempReg or SendNumArgsReg as approprate.
--
best,
Eliot
Reply all
Reply to author
Forward
0 new messages