[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] 811df7: CogVM source as per VMMaker.oscog-eem.2705
Eliot Miranda
noreply at github.com
Tue Feb 4 21:37:20 UTC 2020
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 811df757ca9a874b01a1ee5100600ce450e19f50
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/811df757ca9a874b01a1ee5100600ce450e19f50
Author: Eliot Miranda <eliot.miranda at gmail.com>
Date: 2020-02-04 (Tue, 04 Feb 2020)
Changed paths:
M nsspur64src/vm/cogit.h
M nsspur64src/vm/cogitX64SysV.c
M nsspur64src/vm/cogitX64WIN64.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 platforms/Cross/plugins/IA32ABI/arm32abicc.c
M platforms/unix/vm/sqUnixHeartbeat.c
M platforms/unix/vm/sqUnixITimerHeartbeat.c
M platforms/unix/vm/sqUnixITimerTickerHeartbeat.c
M spur64src/vm/cogit.h
M spur64src/vm/cogitX64SysV.c
M spur64src/vm/cogitX64WIN64.c
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cogitX64SysV.c
M spurlowcode64src/vm/cogitX64WIN64.c
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/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 spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spursista64src/vm/cogit.h
M spursista64src/vm/cogitX64SysV.c
M spursista64src/vm/cogitX64WIN64.c
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/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/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstack64src/vm/validImage.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M spurstacksrc/vm/validImage.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-eem.2705
Cogit:
Add support for a substitute SPReg to cope with the ARMv8's typical 16-byte
stack pointer alignment requirement. Implement NativePopR:& NativePushR:.
Fix compilation warnings for cStack/FramePointerAddress access. Fix
nextProfileTickAddress for 64-bit simulation. Write stackLimitAddress &
vmOwnerLockAddress in the modern style. Move genLoadStackPointers from Cogit
to CogAbstractInstruction where it lives with the other stack load/store
generartors, allowing ARMv8 to easily override to use ldp/stp as desired.
Consequently...
- add NativePopR NativePushR NativeRetN abstract instructions (so far only
NativeRetN needs to be implemented; see ceCaptureCStackPointers)
- add ABICalleeSavedRegisterMask & ABICallerSavedRegisterMask to
CogAbstractRegisters
- Add ABIResultReg and ABIResultRegHigh and nuke the cResultRegister accessor.
- Rename genGetLeafCallStackPointer to genGetLeafCallStackPointers, and have
ceGetSP answer the native stack pointer.
Add support for cache flushing in the dual mapped regime, hence rename
maybeGenerateICacheFlush to maybeGenerateCacheFlush.
Slang:
Sort variables by size so that they occupy a little less space.
reenterInterpreter does *not* need to be exported.
Nuke unused Cogit Lowcode vars when not generating a LowcodeVM.
FFI Plugins:
Let X64 SysV FFI handle passing/returning union
This can be tricky because we can have union in struct, struct in union etc...
So we must correctly peel the union.
More information about the Vm-dev
mailing list