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.
Want to know about upcoming build environment updates?
Would you like to stay up-to-date with the upcoming Travis CI build environment updates? We set up a mailing list for you!