Serguei Katkov | 6cbe081 | 2016-03-01 16:10:48 +0600 | [diff] [blame] | 1 | %default { "helper":"UndefinedInvokeHandler" } |
| 2 | /* |
| 3 | * Generic invoke handler wrapper. |
| 4 | */ |
| 5 | /* op vB, {vD, vE, vF, vG, vA}, class@CCCC */ |
| 6 | /* op {vCCCC..v(CCCC+AA-1)}, meth@BBBB */ |
| 7 | .extern $helper |
| 8 | EXPORT_PC |
| 9 | movq rSELF, OUT_ARG0 |
| 10 | leaq OFF_FP_SHADOWFRAME(rFP), OUT_ARG1 |
| 11 | movq rPC, OUT_ARG2 |
| 12 | REFRESH_INST ${opnum} |
| 13 | movl rINST, OUT_32_ARG3 |
| 14 | call SYMBOL($helper) |
| 15 | testb %al, %al |
| 16 | jz MterpException |
Serguei Katkov | c8705a7 | 2016-02-26 13:00:40 +0600 | [diff] [blame] | 17 | ADVANCE_PC 3 |
| 18 | call SYMBOL(MterpShouldSwitchInterpreters) |
| 19 | testb %al, %al |
| 20 | jnz MterpFallback |
| 21 | FETCH_INST |
| 22 | GOTO_NEXT |