New Cog VMs available

9 views
Skip to first unread message

Eliot Miranda

unread,
May 10, 2015, 4:53:03 PM5/10/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com
... at http://www.mirandabanda.org/files/Cog/VM/VM.r3326.

CogVM binaries as per VMMaker.oscog-eem.1297/r3326

NewspeakVM:
Thread lookup rule through from bytecodes to internalFindNewMethod:.

Fix genInnerPrimitiveMirrorNewWithArg:.  Class's hash was being accessed twice,
reusing variable holding jump instruction.

Fix primitiveClass and genPrimitiveClass for mirror case (arg count = 1). Also
fix Newspeak primitive table to allow nargs > 0 for genPrimitiveClass.

General:
Fix a regression in externalInstVar:ofContext:.  The head frame pointers must
be written back if we're going to map a machince code pc to a bytecode pc in
case of code reclamation.  Add asserts to the stack page enumerators to check
that the head frame pointers have been written back.

Use macros for the oop comparisons, avoiding cCoerce:, to get faster simulation
and avoid the inliner not inlining in conditionals.

Spur:
Change computeRefCountToShrinkRT to
- compute the ref counts and population in a single pass over the RT
- determine the ref count for tenuring based on half the population of
  remembered objects, /not/ half the size of the RT.

Sista:
Remove the storeCheck in inlined pointer at:put: if the value stored is an
unannotatable constant.

Increased the opcode size heuristic in the SistaCogit.


--
best,
Eliot

Eliot Miranda

unread,
May 10, 2015, 11:28:45 PM5/10/15
to Squeak Virtual Machine Development Discussion, The general-purpose Squeak developers list, Discusses Development of Pharo, newspeak...@googlegroups.com
at http://www.mirandabanda.org/files/Cog/VM/VM.r3332/.

CogVM binaries as per VMMaker.oscog-eem.1298/r3332

NewspeakVM:
Thread lookup rule through from bytecodes to internalFindNewMethod:.

Fix genInnerPrimitiveMirrorNewWithArg:.  Class's hash was being accessed twice,
reusing variable holding jump instruction.

Fix primitiveClass and genPrimitiveClass for mirror case (arg count = 1). Also
fix Newspeak primitive table to allow nargs > 0 for genPrimitiveClass.

General:
Fix a regression in externalInstVar:ofContext:.  The head frame pointers must
be written back if we're going to map a machince code pc to a bytecode pc in
case of code reclamation.  Add asserts to the stack page enumerators to check
that the head frame pointers have been written back.

Fix changeClass: for forwwarded receivers.

Use macros for the oop comparisons, avoiding cCoerce:, to get faster simulation
and avoid the inliner not inlining in conditionals.

Spur:
Change computeRefCountToShrinkRT to
- compute the ref counts and population in a single pass over the RT
- determine the ref count for tenuring based on half the population of
  remembered objects, /not/ half the size of the RT.
--
best,
Eliot
Reply all
Reply to author
Forward
0 new messages