createAndPushRegisterDumpArrays

fun createAndPushRegisterDumpArrays(    translator: JVMTranslator,     method: MethodVisitor,     skipIfEmpty: Boolean): Boolean

Write JVM bytecodes to the JVMTranslator which will push:

  1. An Array of AvailObjects containing the value of each live boxed register, and

  2. A LongArray containing encoded data from each live unboxed register.

Also, associate within the JVMTranslator the information needed to extract these live registers when the target L2_ENTER_L2_CHUNK is reached.

These arrays are suitable arguments for creating a ContinuationRegisterDumpDescriptor instance.

If skipIfEmpty is true, and both of the arrays would be empty, don't generate anything, but answer false. Otherwise answer true.

Return

Whether code to push two arrays was generated.

Parameters

translator

The JVMTranslator in which to record the saved register layout.

method

The MethodVisitor on which to write code to push the register dump.

skipIfEmpty

Whether we can skip generating code to push the two arrays, if they would be empty.