Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CogVM source as per VMMaker.oscog-eem.2116
Interpreter: 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. Make printFrame: lax enough to accept a married context and print its frame without complaint. Decode a method header when doing longPrintOop:. Add printOopsSuchThat: for debugging. Spur: Include rawNumSlots and eliminate the hex prefix in printEntity:'s size info. Change attemptToShrink to request the segmentManager to shrink by at least growHeadroom, since it won't otherwise. Have shrinkObjectMemory: answer if shrinkage occurred, and only increment statShrinkMemory if so. Cogit: Add leak checking of CogMethod counters and implicit receiver caches. StackToRegisterMappingCogit: Follow jumps to jumps and push: aBoolean; jump:if:s, eliminating dead code. Elimnate jumps to the immediately following instruction in StackToRegisterMappingCogit>>generateInstructionsAt:. Sista: Added support for BitShiftRight: and bitShiftLeft: unsafe operations Added support for inlined primitive #characterAsInteger. Fixed a bug where branchIfNotInstanceOf: span function misscomputed the distance when ExtB is negated to inverse the branch. Set deadCode to true in trap bytecode to avoid generating merge machine code that is never reached. Use Spur's single-bit tests for immediates in the CogObjectRepresentationFor??BitSpur's branchIf:has[Not]ImmediateTag:target: Fix the ssFlushTo: call in genExtJumpIfNotInstanceOfBehaviorsBytecode Fix coging optimized methods with lots of literals. Change the machine compilation of BranchIfInstanceOf if there is one Behavior and the behavior is UndefinedObject, True and False to compile to a direct comparison to the unique instances instead of class index check. Add a new trampoline to create new hashes. The trampoline is Sista only and it's used in the inlined primitive. ThreadedFFIPlugin: Fix FFI in 64bits. The moduleHandle (a pointer) was incorrectly truncated to an int (32bits). Lowcode: 64 bits version of Lowcode. All of the tests for WodenMath are passing. Workaround a GCC crash in Windows when building a Lowcode VM. Too much register allocation pressure for calling a builtin memcpy.
- Loading branch information