#define GENERATED

  GENERATED  case ICMD_NOP:
  GENERATED  case ICMD_BREAKPOINT:
  GENERATED  case ICMD_INLINE_START:
  GENERATED  case ICMD_INLINE_END:
  GENERATED  case ICMD_INLINE_BODY:
  GENERATED  	/* (--) */
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ACONST:
  GENERATED  	/* (--A) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 345 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (IPTR->flags.bits & INS_FLAG_CLASS) {
  GENERATED  		/* a java.lang.Class reference */
  GENERATED  		TYPEINFO_INIT_JAVA_LANG_CLASS(DST->typeinfo,IPTR->sx.val.c);
  GENERATED  	}
  GENERATED  	else {
  GENERATED  		if (IPTR->sx.val.anyptr == NULL)
  GENERATED  			TYPEINFO_INIT_NULLTYPE(DST->typeinfo);
  GENERATED  		else {
  GENERATED  			/* string constant (or constant for builtin function) */
  GENERATED  			typeinfo_init_classinfo(&(DST->typeinfo),class_java_lang_String);
  GENERATED  		}
  GENERATED  	}
  GENERATED  
#            	line 34 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_ADR;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_CHECKNULL:
  GENERATED  	/* (A--A) */
  GENERATED  	maythrow = true;
  GENERATED  	VAROP(iptr->dst)->type = TYPE_ADR;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ICONST:
  GENERATED  case ICMD_IDIVPOW2:
  GENERATED  case ICMD_LCMPCONST:
  GENERATED  case ICMD_IADDCONST:
  GENERATED  case ICMD_ISUBCONST:
  GENERATED  case ICMD_IMULCONST:
  GENERATED  case ICMD_IANDCONST:
  GENERATED  case ICMD_IORCONST:
  GENERATED  case ICMD_IXORCONST:
  GENERATED  case ICMD_ISHLCONST:
  GENERATED  case ICMD_ISHRCONST:
  GENERATED  case ICMD_IUSHRCONST:
  GENERATED  case ICMD_IREMPOW2:
  GENERATED  case ICMD_IADD:
  GENERATED  case ICMD_ISUB:
  GENERATED  case ICMD_IMUL:
  GENERATED  case ICMD_INEG:
  GENERATED  case ICMD_ISHL:
  GENERATED  case ICMD_ISHR:
  GENERATED  case ICMD_IUSHR:
  GENERATED  case ICMD_IAND:
  GENERATED  case ICMD_IOR:
  GENERATED  case ICMD_IXOR:
  GENERATED  case ICMD_L2I:
  GENERATED  case ICMD_F2I:
  GENERATED  case ICMD_D2I:
  GENERATED  case ICMD_INT2BYTE:
  GENERATED  case ICMD_INT2CHAR:
  GENERATED  case ICMD_INT2SHORT:
  GENERATED  case ICMD_LCMP:
  GENERATED  case ICMD_FCMPL:
  GENERATED  case ICMD_FCMPG:
  GENERATED  case ICMD_DCMPL:
  GENERATED  case ICMD_DCMPG:
  GENERATED  case ICMD_IMULPOW2:
  GENERATED  	/* (--I), (I--I), (L--I), (II--I), (F--I), (D--I), (LL--I), (FF--I), (DD--I) */
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LDIVPOW2:
  GENERATED  case ICMD_LCONST:
  GENERATED  case ICMD_LADDCONST:
  GENERATED  case ICMD_LSUBCONST:
  GENERATED  case ICMD_LMULCONST:
  GENERATED  case ICMD_LANDCONST:
  GENERATED  case ICMD_LORCONST:
  GENERATED  case ICMD_LXORCONST:
  GENERATED  case ICMD_LSHLCONST:
  GENERATED  case ICMD_LSHRCONST:
  GENERATED  case ICMD_LUSHRCONST:
  GENERATED  case ICMD_LREMPOW2:
  GENERATED  case ICMD_LADD:
  GENERATED  case ICMD_LSUB:
  GENERATED  case ICMD_LMUL:
  GENERATED  case ICMD_LNEG:
  GENERATED  case ICMD_LSHL:
  GENERATED  case ICMD_LSHR:
  GENERATED  case ICMD_LUSHR:
  GENERATED  case ICMD_LAND:
  GENERATED  case ICMD_LOR:
  GENERATED  case ICMD_LXOR:
  GENERATED  case ICMD_I2L:
  GENERATED  case ICMD_F2L:
  GENERATED  case ICMD_D2L:
  GENERATED  case ICMD_LMULPOW2:
  GENERATED  	/* (L--L), (--L), (LL--L), (LI--L), (I--L), (F--L), (D--L) */
  GENERATED  	VAROP(iptr->dst)->type = TYPE_LNG;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FCONST:
  GENERATED  case ICMD_FADD:
  GENERATED  case ICMD_FSUB:
  GENERATED  case ICMD_FMUL:
  GENERATED  case ICMD_FDIV:
  GENERATED  case ICMD_FREM:
  GENERATED  case ICMD_FNEG:
  GENERATED  case ICMD_I2F:
  GENERATED  case ICMD_L2F:
  GENERATED  case ICMD_D2F:
  GENERATED  	/* (--F), (FF--F), (F--F), (I--F), (L--F), (D--F) */
  GENERATED  	VAROP(iptr->dst)->type = TYPE_FLT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_DCONST:
  GENERATED  case ICMD_DADD:
  GENERATED  case ICMD_DSUB:
  GENERATED  case ICMD_DMUL:
  GENERATED  case ICMD_DDIV:
  GENERATED  case ICMD_DREM:
  GENERATED  case ICMD_DNEG:
  GENERATED  case ICMD_I2D:
  GENERATED  case ICMD_L2D:
  GENERATED  case ICMD_F2D:
  GENERATED  	/* (--D), (DD--D), (D--D), (I--D), (L--D), (F--D) */
  GENERATED  	VAROP(iptr->dst)->type = TYPE_DBL;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_COPY:
  GENERATED  	/* (1--1) */
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 80 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_stack);
  GENERATED  	COPYTYPE(IPTR->s1, IPTR->dst);
  GENERATED  	DST->type = OP1->type;
  GENERATED  
#            	line 164 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_MOVE:
  GENERATED  	/* (1--1) */
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 79 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_stack);
  GENERATED  	COPYTYPE(IPTR->s1, IPTR->dst);
  GENERATED  	DST->type = OP1->type;
  GENERATED  
#            	line 187 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ILOAD:
  GENERATED  	/* (--I) */
  GENERATED  	CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_INT);
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LLOAD:
  GENERATED  	/* (--L) */
  GENERATED  	CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_LNG);
  GENERATED  	VAROP(iptr->dst)->type = TYPE_LNG;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FLOAD:
  GENERATED  	/* (--F) */
  GENERATED  	CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_FLT);
  GENERATED  	VAROP(iptr->dst)->type = TYPE_FLT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_DLOAD:
  GENERATED  	/* (--D) */
  GENERATED  	CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_DBL);
  GENERATED  	VAROP(iptr->dst)->type = TYPE_DBL;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ALOAD:
  GENERATED  	/* (--A) */
  GENERATED  	CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_ADR);
  GENERATED  
#            	define OP1  VAROP(IPTR->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 89 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_aload);
  GENERATED  
  GENERATED  
#            if !defined(TYPECHECK_TYPEINFERER)
  GENERATED  	/* loading a returnAddress is not allowed */
  GENERATED  	if (!TYPEDESC_IS_REFERENCE(*OP1)) {
  GENERATED  		VERIFY_ERROR("illegal instruction: ALOAD loading non-reference");
  GENERATED  	}
  GENERATED  
#            endif
  GENERATED  	TYPEINFO_COPY(OP1->typeinfo,DST->typeinfo);
  GENERATED  
#            	line 247 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_ADR;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IALOAD:
  GENERATED  	/* (AI--I) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 256 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_INT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 271 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LALOAD:
  GENERATED  	/* (AI--L) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 266 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_LONG))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 295 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_LNG;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FALOAD:
  GENERATED  	/* (AI--F) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 251 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_FLOAT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 319 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_FLT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_DALOAD:
  GENERATED  	/* (AI--D) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 246 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_DOUBLE))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 343 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_DBL;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_AALOAD:
  GENERATED  	/* (AI--A) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 111 "src/vm/jit/verify/icmds.cpp"
  GENERATED  
#            if !defined(TYPECHECK_TYPEINFERER)
  GENERATED  	if (!TYPEINFO_MAYBE_ARRAY_OF_REFS(OP1->typeinfo))
  GENERATED  		VERIFY_ERROR("illegal instruction: AALOAD on non-reference array");
  GENERATED  
#            endif
  GENERATED  
  GENERATED  	if (!typeinfo_init_component(&OP1->typeinfo,&DST->typeinfo))
  GENERATED  		EXCEPTION;
  GENERATED  
#            	line 374 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_ADR;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_BALOAD:
  GENERATED  	/* (AI--I) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 235 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BOOLEAN)
  GENERATED  			&& !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BYTE))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 399 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_CALOAD:
  GENERATED  	/* (AI--I) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 241 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_CHAR))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 423 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_SALOAD:
  GENERATED  	/* (AI--I) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 261 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_SHORT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 447 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ISTORE:
  GENERATED  	/* (I--) */
  GENERATED  	STORE_LOCAL(TYPE_INT, IPTR->dst.varindex);
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LSTORE:
  GENERATED  	/* (L--) */
  GENERATED  	STORE_LOCAL_2_WORD(TYPE_LNG, IPTR->dst.varindex);
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FSTORE:
  GENERATED  	/* (F--) */
  GENERATED  	STORE_LOCAL(TYPE_FLT, IPTR->dst.varindex);
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_DSTORE:
  GENERATED  	/* (D--) */
  GENERATED  	STORE_LOCAL_2_WORD(TYPE_DBL, IPTR->dst.varindex);
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ASTORE:
  GENERATED  	/* (A--|R--) */
  GENERATED  	STORE_LOCAL(VAROP(iptr->s1)->type, IPTR->dst.varindex);
  GENERATED  
#            	define DST  VAROP(IPTR->dst)
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 104 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPEINFO_COPY(OP1->typeinfo, DST->typeinfo);
  GENERATED  
#            	line 494 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef DST
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IF_LEQ:
  GENERATED  case ICMD_IF_LNE:
  GENERATED  case ICMD_IF_LLT:
  GENERATED  case ICMD_IF_LGE:
  GENERATED  case ICMD_IF_LGT:
  GENERATED  case ICMD_IF_LLE:
  GENERATED  case ICMD_IF_LCMPEQ:
  GENERATED  case ICMD_IF_LCMPNE:
  GENERATED  case ICMD_IF_LCMPLT:
  GENERATED  case ICMD_IF_LCMPGE:
  GENERATED  case ICMD_IF_LCMPGT:
  GENERATED  case ICMD_IF_LCMPLE:
  GENERATED  case ICMD_IFEQ:
  GENERATED  case ICMD_IFNE:
  GENERATED  case ICMD_IFLT:
  GENERATED  case ICMD_IFGE:
  GENERATED  case ICMD_IFGT:
  GENERATED  case ICMD_IFLE:
  GENERATED  case ICMD_IF_ICMPEQ:
  GENERATED  case ICMD_IF_ICMPNE:
  GENERATED  case ICMD_IF_ICMPLT:
  GENERATED  case ICMD_IF_ICMPGE:
  GENERATED  case ICMD_IF_ICMPGT:
  GENERATED  case ICMD_IF_ICMPLE:
  GENERATED  case ICMD_IF_ACMPEQ:
  GENERATED  case ICMD_IF_ACMPNE:
  GENERATED  case ICMD_IFNULL:
  GENERATED  case ICMD_IFNONNULL:
  GENERATED  	/* (L--), (LL--), (I--), (II--), (AA--), (A--) */
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 404 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* {RESULTNOW} */
  GENERATED  	TYPECHECK_COUNT(stat_ins_branch);
  GENERATED  
  GENERATED  	/* propagate stack and variables to the target block */
  GENERATED  	REACH(IPTR->dst);
  GENERATED  
#            	line 544 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IASTORE:
  GENERATED  	/* (AII--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 292 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_INT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 563 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LASTORE:
  GENERATED  	/* (AIL--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 302 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_LONG))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 582 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FASTORE:
  GENERATED  	/* (AIF--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 287 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_FLOAT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 601 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_DASTORE:
  GENERATED  	/* (AID--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 282 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_DOUBLE))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 620 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_AASTORE:
  GENERATED  	/* (AIA--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 307 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* we just check the basic input types and that the           */
  GENERATED  	/* destination is an array of references. Assignability to    */
  GENERATED  	/* the actual array must be checked at runtime, each time the */
  GENERATED  	/* instruction is performed. (See builtin_canstore.)          */
  GENERATED  	if (!TYPEINFO_MAYBE_ARRAY_OF_REFS(OP1->typeinfo))
  GENERATED  		VERIFY_ERROR("illegal instruction: AASTORE to non-reference array");
  GENERATED  
#            	line 643 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_BASTORE:
  GENERATED  	/* (AII--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 271 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BOOLEAN)
  GENERATED  			&& !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BYTE))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 663 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_CASTORE:
  GENERATED  	/* (AII--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 277 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_CHAR))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 682 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_SASTORE:
  GENERATED  	/* (AII--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 297 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_SHORT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 701 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_POP:
  GENERATED  	/* (1--) */
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_POP2:
  GENERATED  	/* (11--|2--) */
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IDIV:
  GENERATED  case ICMD_IREM:
  GENERATED  	/* (II--I) */
  GENERATED  	maythrow = true;
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LDIV:
  GENERATED  case ICMD_LREM:
  GENERATED  	/* (LL--L) */
  GENERATED  	maythrow = true;
  GENERATED  	VAROP(iptr->dst)->type = TYPE_LNG;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IINC:
  GENERATED  	/* (--) */
  GENERATED  	CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_INT);
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_GOTO:
  GENERATED  	/* (--) */
  GENERATED  	superblockend = true;
  GENERATED  
  GENERATED  
#            	line 386 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* {RESULTNOW} */
  GENERATED  	TYPECHECK_COUNT(stat_ins_branch);
  GENERATED  
  GENERATED  	/* propagate stack and variables to the target block */
  GENERATED  	REACH(IPTR->dst);
  GENERATED  
#            	line 753 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_JSR:
  GENERATED  	/* (--R) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 551 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPEINFO_INIT_RETURNADDRESS(DST->typeinfo, BPTR->next);
  GENERATED  	REACH(IPTR->sx.s23.s3.jsrtarget);
  GENERATED  
#            	line 769 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_RET;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_RET:
  GENERATED  	/* (--) */
  GENERATED  	superblockend = true;
  GENERATED  
  GENERATED  
#            	line 568 "src/vm/jit/verify/icmds.cpp"
  GENERATED  
#            if !defined(TYPECHECK_TYPEINFERER)
  GENERATED  	/* check returnAddress variable */
  GENERATED  	if (!typevector_checkretaddr(jd->var,IPTR->s1.varindex))
  GENERATED  		VERIFY_ERROR("illegal instruction: RET using non-returnAddress variable");
  GENERATED  
#            endif
  GENERATED  	REACH(IPTR->dst);
  GENERATED  
#            	line 793 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_TABLESWITCH:
  GENERATED  	/* (I--) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 427 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* {RESULTNOW} */
  GENERATED  	TYPECHECK_COUNT(stat_ins_switch);
  GENERATED  
  GENERATED  	table = IPTR->dst.table;
  GENERATED  	i = IPTR->sx.s23.s3.tablehigh
  GENERATED  	- IPTR->sx.s23.s2.tablelow + 1 + 1; /* plus default */
  GENERATED  
  GENERATED  	while (--i >= 0) {
  GENERATED  		REACH(*table);
  GENERATED  		table++;
  GENERATED  	}
  GENERATED  
  GENERATED  	LOG("switch done");
  GENERATED  
#            	line 820 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LOOKUPSWITCH:
  GENERATED  	/* (I--) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 443 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* {RESULTNOW} */
  GENERATED  	TYPECHECK_COUNT(stat_ins_switch);
  GENERATED  
  GENERATED  	lookup = IPTR->dst.lookup;
  GENERATED  	i = IPTR->sx.s23.s2.lookupcount;
  GENERATED  	REACH(IPTR->sx.s23.s3.lookupdefault);
  GENERATED  
  GENERATED  	while (--i >= 0) {
  GENERATED  		REACH(lookup->target);
  GENERATED  		lookup++;
  GENERATED  	}
  GENERATED  
  GENERATED  	LOG("switch done");
  GENERATED  
#            	line 850 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IRETURN:
  GENERATED  	/* (I--) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 509 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (STATE->returntype.type != TYPE_INT)
  GENERATED  		VERIFY_ERROR("Return type mismatch");
  GENERATED  
#            	line 869 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	goto return_tail;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LRETURN:
  GENERATED  	/* (L--) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 514 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (STATE->returntype.type != TYPE_LNG)
  GENERATED  		VERIFY_ERROR("Return type mismatch");
  GENERATED  
#            	line 888 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	goto return_tail;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FRETURN:
  GENERATED  	/* (F--) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 519 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (STATE->returntype.type != TYPE_FLT)
  GENERATED  		VERIFY_ERROR("Return type mismatch");
  GENERATED  
#            	line 907 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	goto return_tail;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_DRETURN:
  GENERATED  	/* (D--) */
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 524 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (STATE->returntype.type != TYPE_DBL)
  GENERATED  		VERIFY_ERROR("Return type mismatch");
  GENERATED  
#            	line 926 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	goto return_tail;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ARETURN:
  GENERATED  	/* (A--) */
  GENERATED  	maythrow = true;
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 484 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_areturn);
  GENERATED  	if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
  GENERATED  		VERIFY_ERROR("illegal instruction: ARETURN on non-reference");
  GENERATED  
  GENERATED  	if (STATE->returntype.type != TYPE_ADR
  GENERATED  			|| (r = typeinfo_is_assignable(&OP1->typeinfo,&(STATE->returntype.typeinfo)))
  GENERATED  			== typecheck_FALSE)
  GENERATED  		VERIFY_ERROR("Return type mismatch");
  GENERATED  	if (r == typecheck_FAIL)
  GENERATED  		EXCEPTION;
  GENERATED  	if (r == typecheck_MAYBE) {
  GENERATED  		/* the check has to be postponed, we need a patcher */
  GENERATED  		TYPECHECK_COUNT(stat_ins_areturn_unresolved);
  GENERATED  		IPTR->sx.s23.s2.uc = create_unresolved_class(
  GENERATED  				METHOD,
  GENERATED  				METHOD->parseddesc->returntype.classref,
  GENERATED  				&OP1->typeinfo);
  GENERATED  		IPTR->flags.bits |= INS_FLAG_UNRESOLVED;
  GENERATED  	}
  GENERATED  
#            	line 963 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	goto return_tail;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_RETURN:
  GENERATED  	/* (--) */
  GENERATED  	superblockend = true;
  GENERATED  
  GENERATED  
#            	line 529 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (STATE->returntype.type != TYPE_VOID)
  GENERATED  		VERIFY_ERROR("Return type mismatch");
  GENERATED  
  GENERATED  return_tail:
  GENERATED  	TYPECHECK_COUNT(stat_ins_primitive_return);
  GENERATED  
  GENERATED  	if (STATE->initmethod && METHOD->clazz != class_java_lang_Object) {
  GENERATED  		/* Check if the 'this' instance has been initialized. */
  GENERATED  		LOG("Checking <init> marker");
  GENERATED  
#            if defined(TYPECHECK_VARIABLESBASED)
  GENERATED  		if (!typevector_checktype(jd->var,STATE->numlocals-1,TYPE_INT))
  GENERATED  
#            else
  GENERATED  		if (STATE->locals[STATE->numlocals-1].type != TYPE_INT)
  GENERATED  
#            endif
  GENERATED  			VERIFY_ERROR("<init> method does not initialize 'this'");
  GENERATED  	}
  GENERATED  
#            	line 997 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_GETSTATIC:
  GENERATED  	/* (--1|--2) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 220 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!handle_fieldaccess(state, NULL, NULL))
  GENERATED  		return false;
  GENERATED  	maythrow = true;
  GENERATED  
#            	line 1014 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_PUTSTATIC:
  GENERATED  	/* (1--|2--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 166 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!handle_fieldaccess(state, NULL, VAROP(iptr->s1)))
  GENERATED  		return false;
  GENERATED  	maythrow = true;
  GENERATED  
#            	line 1034 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_GETFIELD:
  GENERATED  	/* (A--1|A--2) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 214 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!handle_fieldaccess(state, VAROP(iptr->s1), NULL))
  GENERATED  		return false;
  GENERATED  	maythrow = true;
  GENERATED  
#            	line 1056 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_PUTFIELD:
  GENERATED  	/* (A1--|A2--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 160 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!handle_fieldaccess(state, VAROP(iptr->s1), VAROP(iptr->sx.s23.s2)))
  GENERATED  		return false;
  GENERATED  	maythrow = true;
  GENERATED  
#            	line 1078 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_INVOKEVIRTUAL:
  GENERATED  case ICMD_INVOKESPECIAL:
  GENERATED  case ICMD_INVOKESTATIC:
  GENERATED  case ICMD_INVOKEINTERFACE:
  GENERATED  	/* (.--1|.--2|.--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 590 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_invoke);
  GENERATED  	if (!handle_invocation(state))
  GENERATED  		EXCEPTION;
  GENERATED  	TYPECHECK_COUNTIF(INSTRUCTION_IS_UNRESOLVED(IPTR), stat_ins_invoke_unresolved);
  GENERATED  
#            	line 1102 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ARRAYLENGTH:
  GENERATED  	/* (A--I) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 229 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_ARRAY(OP1->typeinfo)
  GENERATED  			&& OP1->typeinfo.typeclass.cls != pseudo_class_Arraystub)
  GENERATED  		VERIFY_ERROR("illegal instruction: ARRAYLENGTH on non-array");
  GENERATED  
#            	line 1124 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_ATHROW:
  GENERATED  	/* (A--) */
  GENERATED  	maythrow = true;
  GENERATED  	superblockend = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 463 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_athrow);
  GENERATED  	r = typeinfo_is_assignable_to_class(&OP1->typeinfo,
  GENERATED  			CLASSREF_OR_CLASSINFO(class_java_lang_Throwable));
  GENERATED  	if (r == typecheck_FALSE)
  GENERATED  		VERIFY_ERROR("illegal instruction: ATHROW on non-Throwable");
  GENERATED  	if (r == typecheck_FAIL)
  GENERATED  		EXCEPTION;
  GENERATED  	if (r == typecheck_MAYBE) {
  GENERATED  		/* the check has to be postponed. we need a patcher */
  GENERATED  		TYPECHECK_COUNT(stat_ins_athrow_unresolved);
  GENERATED  		IPTR->sx.s23.s2.uc = create_unresolved_class(
  GENERATED  				METHOD,
  GENERATED  				/* XXX make this more efficient, use class_java_lang_Throwable
  GENERATED  				 * directly */
  GENERATED  				class_get_classref(METHOD->clazz,utf_java_lang_Throwable),
  GENERATED  				&OP1->typeinfo);
  GENERATED  		IPTR->flags.bits |= INS_FLAG_UNRESOLVED;
  GENERATED  	}
  GENERATED  
#            	line 1163 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_CHECKCAST:
  GENERATED  	/* (A--A) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 363 "src/vm/jit/verify/icmds.cpp"
  GENERATED  
#            if !defined(TYPECHECK_TYPEINFERER)
  GENERATED  	/* returnAddress is not allowed */
  GENERATED  	if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
  GENERATED  		VERIFY_ERROR("Illegal instruction: CHECKCAST on non-reference");
  GENERATED  
#            endif
  GENERATED  
  GENERATED      /* XXX only if narrower */
  GENERATED  	if (!typeinfo_init_class(&(DST->typeinfo),IPTR->sx.s23.s3.c))
  GENERATED  		EXCEPTION;
  GENERATED  
#            	line 1193 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_ADR;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_INSTANCEOF:
  GENERATED  	/* (A--I) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 375 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* returnAddress is not allowed */
  GENERATED  	if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
  GENERATED  		VERIFY_ERROR("Illegal instruction: INSTANCEOF on non-reference");
  GENERATED  
  GENERATED  	/* XXX should propagate type information to the following if-branches */
  GENERATED  
#            	line 1220 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_INT;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_MULTIANEWARRAY:
  GENERATED  	/* (.--A) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
#            	define DST  VAROP(iptr->dst)
  GENERATED  
  GENERATED  
#            	line 633 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!handle_multianewarray(STATE))
  GENERATED  		EXCEPTION;
  GENERATED  
#            	line 1244 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	VAROP(iptr->dst)->type = TYPE_ADR;
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
#            	undef DST
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_IASTORECONST:
  GENERATED  	/* (AI--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 316 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_INT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 1266 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_LASTORECONST:
  GENERATED  	/* (AI--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 321 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_LONG))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 1285 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_FASTORECONST:
  GENERATED  case ICMD_DASTORECONST:
  GENERATED  case ICMD_AASTORECONST:
  GENERATED  	/* (AI--) */
  GENERATED  	maythrow = true;
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_BASTORECONST:
  GENERATED  	/* (AI--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 326 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_BOOLEAN)
  GENERATED  			&& !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_BYTE))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 1313 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_CASTORECONST:
  GENERATED  	/* (AI--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 332 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_CHAR))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 1332 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_SASTORECONST:
  GENERATED  	/* (AI--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 337 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_SHORT))
  GENERATED  		VERIFY_ERROR("Array type mismatch");
  GENERATED  
#            	line 1351 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_PUTSTATICCONST:
  GENERATED  	/* (--) */
  GENERATED  	maythrow = true;
  GENERATED  
  GENERATED  
#            	line 193 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* XXX this mess will go away with const operands */
  GENERATED  	INSTRUCTION_GET_FIELDREF(state->iptr, fieldref);
  GENERATED  	constvalue.type = fieldref->parseddesc.fd->type;
  GENERATED  	if (IS_ADR_TYPE(constvalue.type)) {
  GENERATED  		if (state->iptr->sx.val.anyptr) {
  GENERATED  			classinfo *cc = (state->iptr->flags.bits & INS_FLAG_CLASS)
  GENERATED  				? class_java_lang_Class : class_java_lang_String;
  GENERATED  			assert(cc);
  GENERATED  			assert(cc->state & CLASS_LINKED);
  GENERATED  			typeinfo_init_classinfo(&(constvalue.typeinfo), cc);
  GENERATED  		}
  GENERATED  		else {
  GENERATED  			TYPEINFO_INIT_NULLTYPE(constvalue.typeinfo);
  GENERATED  		}
  GENERATED  	}
  GENERATED  	if (!handle_fieldaccess(state, NULL, &constvalue))
  GENERATED  		return false;
  GENERATED  	maythrow = true;
  GENERATED  
#            	line 1384 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_PUTFIELDCONST:
  GENERATED  	/* (A--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 172 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	/* XXX this mess will go away with const operands */
  GENERATED  	INSTRUCTION_GET_FIELDREF(state->iptr, fieldref);
  GENERATED  	constvalue.type = fieldref->parseddesc.fd->type;
  GENERATED  	if (IS_ADR_TYPE(constvalue.type)) {
  GENERATED  		if (state->iptr->sx.val.anyptr) {
  GENERATED  			classinfo *cc = (state->iptr->flags.bits & INS_FLAG_CLASS)
  GENERATED  				? class_java_lang_Class : class_java_lang_String;
  GENERATED  			assert(cc);
  GENERATED  			assert(cc->state & CLASS_LINKED);
  GENERATED  			typeinfo_init_classinfo(&(constvalue.typeinfo), cc);
  GENERATED  		}
  GENERATED  		else {
  GENERATED  			TYPEINFO_INIT_NULLTYPE(constvalue.typeinfo);
  GENERATED  		}
  GENERATED  	}
  GENERATED  	if (!handle_fieldaccess(state, VAROP(iptr->s1), &constvalue))
  GENERATED  		return false;
  GENERATED  	maythrow = true;
  GENERATED  
#            	line 1416 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
  GENERATED  case ICMD_BUILTIN:
  GENERATED  	/* (.--1|.--2|.--) */
  GENERATED  	maythrow = true;
  GENERATED  
#            	define OP1  VAROP(iptr->s1)
  GENERATED  
  GENERATED  
#            	line 648 "src/vm/jit/verify/icmds.cpp"
  GENERATED  	TYPECHECK_COUNT(stat_ins_builtin);
  GENERATED  	if (!handle_builtin(state))
  GENERATED  		EXCEPTION;
  GENERATED  
#            	line 1436 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
  GENERATED  
  GENERATED  	break;
  GENERATED  
  GENERATED  
#            	undef OP1
  GENERATED  
  GENERATED  
#undef GENERATED
/* vim:filetype=c:
 */
