[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 456992: CogVM source as
per VMMaker.oscog-nice.1933
GitHub
noreply at github.com
Mon Sep 5 08:00:01 UTC 2016
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 456992cac8ac6d607603301c3d19d016998d90ae
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/456992cac8ac6d607603301c3d19d016998d90ae
Author: Eliot Miranda <eliot.miranda at gmail.com>
Date: 2016-09-05 (Mon, 05 Sep 2016)
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 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-nice.1933
Fix incorrect type inferencing for asUnsignedLongLong which causes a bug in the
v3 format VM in fetchLong64:ofObject:. This breaks large integer arithmetic.
In this case, type inferencing is used for correct unsigned casting before
left shifting.
TODO: verify that all selectors translated via initializeCTranslationDictionary
have correct type inferencing in returnTypeForSend:in:ifNil:
Sista:
The jumpIfNotInstanceOfOrPop bytecode was interesting but hard to tackle in many
places, leading to hard to write assertion in the JIT.
It has been changed so that it now always consumes the top of the stack,
jumping if the top of the stack is not an instance of one of the class
specified in the literal.
This way that bytecode can also be used easily to optimize PICs.
Fixed machine code generation of UByteNumBytes
More information about the Vm-dev
mailing list