blob: 3d85f5e4041d6a8056bdc02b6b84720e3c43746a [file] [log] [blame]
/*
* Check to see if a cast from one class to another is allowed.
*/
/* check-cast vAA, class@BBBB */
EXPORT_PC
movzwl 2(rPC), %eax # eax <- BBBB
movl %eax, OUT_ARG0(%esp)
GET_VREG %ecx rINST
movl %ecx, OUT_ARG1(%esp)
movl OFF_FP_METHOD(rFP),%eax
movl %eax, OUT_ARG2(%esp)
movl rSELF, %ecx
movl %ecx, OUT_ARG3(%esp)
call MterpCheckCast # (index, obj, method, self)
REFRESH_IBASE
testl %eax, %eax
jnz MterpPossibleException
ADVANCE_PC_FETCH_AND_GOTO_NEXT 2