[OpenSmalltalk/opensmalltalk-vm] d32dce: Regenerate 32bits Cog/Spur code as of VMMaker.osco...

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[OpenSmalltalk/opensmalltalk-vm] d32dce: Regenerate 32bits Cog/Spur code as of VMMaker.osco...

Tobias Pape-4
  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: d32dce9cd02406014b04a6bbb32d1c0414017633
  Author: Nicolas Cellier <[hidden email]>
  Date:   2020-02-17 (Mon, 17 Feb 2020)

  Changed paths:
    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 spurlowcodesrc/vm/cogit.h
    M spurlowcodesrc/vm/cogitARMv5.c
    M spurlowcodesrc/vm/cogitIA32.c
    M spurlowcodesrc/vm/cogitMIPSEL.c
    M spurlowcodesrc/vm/cointerp.c
    M spurlowcodesrc/vm/cointerp.h
    M spurlowcodesrc/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.c
    M spursrc/vm/cogit.h
    M spursrc/vm/cogitARMv5.c
    M spursrc/vm/cogitIA32.c
    M spursrc/vm/cogitMIPSEL.c
    M spursrc/vm/cogmethod.h
    M spursrc/vm/cointerp.c
    M spursrc/vm/cointerp.h
    M spursrc/vm/cointerpmt.c
    M spursrc/vm/cointerpmt.h
    M spursrc/vm/exampleSqNamedPrims.h
    M spursrc/vm/gcc3x-cointerp.c
    M spursrc/vm/gcc3x-cointerpmt.c
    M spursrc/vm/interp.h
    M spursrc/vm/vmCallback.h
    M src/plugins/LargeIntegers/LargeIntegers.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

  Log Message:
  Regenerate 32bits Cog/Spur code as of VMMaker.oscog-nice.2712

Fix alternative code generation for highBit via BSR for Spur32:

Previous opcode is a Label, so we cannot test if it setsConditionCodesFor: JumpNegative.
We have to force a CmpCq:R:.
For X64, it's OK, previous opcode is an arithmetic shift.

Fix simulation of primitiveHighBit by sending #numSmallIntegerTagBits to the objectMemory which knows this kind of memory layout detail.

While at it, change the order of BSR registers maskReg -> destReg, like any other CogRTLOpcodes, rather than destReg <- maskReg.

Name: VMMaker.oscog-nice.2711

Accelerate SmallInteger anyBitOfMagnitudeFrom:to:
Indeed, there is no need to create a large integer just for checking the bits of a small one; this can be done with a single bit mask.

Avoid some undefined behavior warnings related to integerObjectOf(-1) when compiling the VM with clang compiler option -fsanitize=undefined.

Cogit: remove some references to BytesPerOop in Lowcode.  There are still lots of references to BytesPerWord we would like to rewrite to objectMemory bytesPerWord.  The issue is that using the messages allows us to have 32-bit and 64-bit images open side-by-side and at least have printing working.

Fix a bug in endPCOf: that hence fixes symbolicMethod:
Provide a breakBlock somewhat similar to the CogVMSimulator's
Have StackInterpreterSimulator>>close close attendant debuggers a la CogVMSimulator
Update the arg name in CogVMSimulator>>setBreakBlockFromString:

Try and restore the lowcode capability to return int64 result on various 32bits ABI.

The ABIResultRegHigh needs to be defined.

Document the NativeSPReg/SPReg distinction/identity.

Slang: Eliminate one source of unused expressions, the expansions of literal block nodes not used for value with a trailing effectless expression.

Dual mapped zone:
Make assertValidDualZoneFrom:to: conditional on cppIf: #DUAL_MAPPED_CODE_ZONE

Simulation: Fix printRumpCStack and have it be more informative.