1%default { "helper":"MterpFilledNewArray" }
2/*
3 * Create a new array with elements filled from registers.
4 *
5 * for: filled-new-array, filled-new-array/range
6 */
7    /* op vB, {vD, vE, vF, vG, vA}, class@CCCC */
8    /* op {vCCCC..v(CCCC+AA-1)}, type@BBBB */
9    .extern $helper
10    EXPORT_PC
11    leal    OFF_FP_SHADOWFRAME(rFP), %eax
12    movl    %eax, OUT_ARG0(%esp)
13    movl    rPC, OUT_ARG1(%esp)
14    movl    rSELF, %ecx
15    movl    %ecx, OUT_ARG2(%esp)
16    call    SYMBOL($helper)
17    REFRESH_IBASE
18    testb   %al, %al                        # 0 means an exception is thrown
19    jz      MterpPossibleException
20    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
21