I found a case where the Stack VM works but the Cog VM trips.
Bytecode and disassembly displays look OK, and single-stepping in the Cog VM works.
Unfortunately, I have not been able to build a GdbARMv8Plugin on my RasPi4 Linux, so I don't have a ready way to view the JITed code.
Details: The proximate error is (see attached graphic) that by the end of the method, #tail should be zero. This _is_ the case with restart plus single-stepping.
Looks to me like an off-by-one error on tracking stack position [or else the subtract in "tail := self - (head * halfPower)." is not happening].
The Workspace expression is:
(Integer readFrom: (ReadStream on: '8000000000000000') base: 16) printStringHex.
Thanks much for any help/insights, -KenD
PS: I am using the Bayvision sources because the current OpenSmalltalk has a problem with include file order and 2nd mvm invocation dies after hacking config.h in trying to build the Camera plugin. FYI
vm-dev@lists.squeakfoundation.org