Fix super-instructions to support bytecode jumps. There were two main problems:
Regarding the annotateBytecode:, there were 2 for the same super-bytecode, at the end. I added a pass DRAnnotateBytecodeInstructionCoalescing To move all of these instructions at the beginning. I'm not sure about this, I left some comments.
When another bytecode jumps to the middle of the super-instruction (to the 2nd bytecode). It is not managing correctly the fixups. Now the superinstruction is avoided on those cases. I couldn't make it work as I wanted.
You can see the changes in DruidTestRTLCompiler to see the result of these fixes.
Fix super-instructions to support bytecode jumps. There were two main problems:
Regarding the
annotateBytecode:
, there were 2 for the same super-bytecode, at the end. I added a passDRAnnotateBytecodeInstructionCoalescing
To move all of these instructions at the beginning. I'm not sure about this, I left some comments.When another bytecode jumps to the middle of the super-instruction (to the 2nd bytecode). It is not managing correctly the
fixup
s. Now the superinstruction is avoided on those cases. I couldn't make it work as I wanted.You can see the changes in
DruidTestRTLCompiler
to see the result of these fixes.DruidJIT: https://github.com/pharo-project/pharo-vm/pull/831