blob: c08b09f4d27b536f2e8c9f3f046ee04161107b4c [file] [log] [blame]
Serguei Katkov99229c72015-12-31 13:05:31 +06001%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 $helper
17 REFRESH_IBASE
18 testl %eax, %eax # 0 means an exception is thrown
19 jz MterpPossibleException
20 ADVANCE_PC_FETCH_AND_GOTO_NEXT 3