* src/threads/none/threads.h (threads_get_current_object): New
[cacao.git] / src / vm / jit / verify / typecheck-typeinferer-gen.inc
1 #define GENERATED
2
3   GENERATED  case ICMD_NOP:
4   GENERATED  case ICMD_INLINE_START:
5   GENERATED  case ICMD_INLINE_END:
6   GENERATED  case ICMD_INLINE_BODY:
7   GENERATED     /* (--) */
8   GENERATED     break;
9   GENERATED  
10   GENERATED  
11   GENERATED  case ICMD_ACONST:
12   GENERATED     /* (--A) */
13   GENERATED     maythrow = true;
14   GENERATED  
15 #               define DST  VAROP(iptr->dst)
16   GENERATED  
17   GENERATED  
18 #               line 355 "src/vm/jit/verify/icmds.c"
19   GENERATED     if (IPTR->flags.bits & INS_FLAG_CLASS) {
20   GENERATED             /* a java.lang.Class reference */
21   GENERATED             TYPEINFO_INIT_JAVA_LANG_CLASS(DST->typeinfo,IPTR->sx.val.c);
22   GENERATED     }
23   GENERATED     else {
24   GENERATED             if (IPTR->sx.val.anyptr == NULL)
25   GENERATED                     TYPEINFO_INIT_NULLTYPE(DST->typeinfo);
26   GENERATED             else {
27   GENERATED                     /* string constant (or constant for builtin function) */
28   GENERATED                     typeinfo_init_classinfo(&(DST->typeinfo),class_java_lang_String);
29   GENERATED             }
30   GENERATED     }
31   GENERATED  
32 #               line 33 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
33   GENERATED  
34   GENERATED     VAROP(iptr->dst)->type = TYPE_ADR;
35   GENERATED     break;
36   GENERATED  
37   GENERATED  
38 #               undef DST
39   GENERATED  
40   GENERATED  
41   GENERATED  case ICMD_CHECKNULL:
42   GENERATED     /* (A--A) */
43   GENERATED     maythrow = true;
44   GENERATED     VAROP(iptr->dst)->type = TYPE_ADR;
45   GENERATED     break;
46   GENERATED  
47   GENERATED  
48   GENERATED  case ICMD_ICONST:
49   GENERATED  case ICMD_IDIVPOW2:
50   GENERATED  case ICMD_LCMPCONST:
51   GENERATED  case ICMD_IADDCONST:
52   GENERATED  case ICMD_ISUBCONST:
53   GENERATED  case ICMD_IMULCONST:
54   GENERATED  case ICMD_IANDCONST:
55   GENERATED  case ICMD_IORCONST:
56   GENERATED  case ICMD_IXORCONST:
57   GENERATED  case ICMD_ISHLCONST:
58   GENERATED  case ICMD_ISHRCONST:
59   GENERATED  case ICMD_IUSHRCONST:
60   GENERATED  case ICMD_IREMPOW2:
61   GENERATED  case ICMD_IADD:
62   GENERATED  case ICMD_ISUB:
63   GENERATED  case ICMD_IMUL:
64   GENERATED  case ICMD_INEG:
65   GENERATED  case ICMD_ISHL:
66   GENERATED  case ICMD_ISHR:
67   GENERATED  case ICMD_IUSHR:
68   GENERATED  case ICMD_IAND:
69   GENERATED  case ICMD_IOR:
70   GENERATED  case ICMD_IXOR:
71   GENERATED  case ICMD_L2I:
72   GENERATED  case ICMD_F2I:
73   GENERATED  case ICMD_D2I:
74   GENERATED  case ICMD_INT2BYTE:
75   GENERATED  case ICMD_INT2CHAR:
76   GENERATED  case ICMD_INT2SHORT:
77   GENERATED  case ICMD_LCMP:
78   GENERATED  case ICMD_FCMPL:
79   GENERATED  case ICMD_FCMPG:
80   GENERATED  case ICMD_DCMPL:
81   GENERATED  case ICMD_DCMPG:
82   GENERATED  case ICMD_IMULPOW2:
83   GENERATED     /* (--I), (I--I), (L--I), (II--I), (F--I), (D--I), (LL--I), (FF--I), (DD--I) */
84   GENERATED     VAROP(iptr->dst)->type = TYPE_INT;
85   GENERATED     break;
86   GENERATED  
87   GENERATED  
88   GENERATED  case ICMD_LDIVPOW2:
89   GENERATED  case ICMD_LCONST:
90   GENERATED  case ICMD_LADDCONST:
91   GENERATED  case ICMD_LSUBCONST:
92   GENERATED  case ICMD_LMULCONST:
93   GENERATED  case ICMD_LANDCONST:
94   GENERATED  case ICMD_LORCONST:
95   GENERATED  case ICMD_LXORCONST:
96   GENERATED  case ICMD_LSHLCONST:
97   GENERATED  case ICMD_LSHRCONST:
98   GENERATED  case ICMD_LUSHRCONST:
99   GENERATED  case ICMD_LREMPOW2:
100   GENERATED  case ICMD_LADD:
101   GENERATED  case ICMD_LSUB:
102   GENERATED  case ICMD_LMUL:
103   GENERATED  case ICMD_LNEG:
104   GENERATED  case ICMD_LSHL:
105   GENERATED  case ICMD_LSHR:
106   GENERATED  case ICMD_LUSHR:
107   GENERATED  case ICMD_LAND:
108   GENERATED  case ICMD_LOR:
109   GENERATED  case ICMD_LXOR:
110   GENERATED  case ICMD_I2L:
111   GENERATED  case ICMD_F2L:
112   GENERATED  case ICMD_D2L:
113   GENERATED  case ICMD_LMULPOW2:
114   GENERATED     /* (L--L), (--L), (LL--L), (LI--L), (I--L), (F--L), (D--L) */
115   GENERATED     VAROP(iptr->dst)->type = TYPE_LNG;
116   GENERATED     break;
117   GENERATED  
118   GENERATED  
119   GENERATED  case ICMD_FCONST:
120   GENERATED  case ICMD_FADD:
121   GENERATED  case ICMD_FSUB:
122   GENERATED  case ICMD_FMUL:
123   GENERATED  case ICMD_FDIV:
124   GENERATED  case ICMD_FREM:
125   GENERATED  case ICMD_FNEG:
126   GENERATED  case ICMD_I2F:
127   GENERATED  case ICMD_L2F:
128   GENERATED  case ICMD_D2F:
129   GENERATED     /* (--F), (FF--F), (F--F), (I--F), (L--F), (D--F) */
130   GENERATED     VAROP(iptr->dst)->type = TYPE_FLT;
131   GENERATED     break;
132   GENERATED  
133   GENERATED  
134   GENERATED  case ICMD_DCONST:
135   GENERATED  case ICMD_DADD:
136   GENERATED  case ICMD_DSUB:
137   GENERATED  case ICMD_DMUL:
138   GENERATED  case ICMD_DDIV:
139   GENERATED  case ICMD_DREM:
140   GENERATED  case ICMD_DNEG:
141   GENERATED  case ICMD_I2D:
142   GENERATED  case ICMD_L2D:
143   GENERATED  case ICMD_F2D:
144   GENERATED     /* (--D), (DD--D), (D--D), (I--D), (L--D), (F--D) */
145   GENERATED     VAROP(iptr->dst)->type = TYPE_DBL;
146   GENERATED     break;
147   GENERATED  
148   GENERATED  
149   GENERATED  case ICMD_COPY:
150   GENERATED     /* (1--1) */
151   GENERATED  
152 #               define OP1  VAROP(iptr->s1)
153   GENERATED  
154 #               define DST  VAROP(iptr->dst)
155   GENERATED  
156   GENERATED  
157 #               line 90 "src/vm/jit/verify/icmds.c"
158   GENERATED     TYPECHECK_COUNT(stat_ins_stack);
159   GENERATED     COPYTYPE(IPTR->s1, IPTR->dst);
160   GENERATED     DST->type = OP1->type;
161   GENERATED  
162 #               line 163 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
163   GENERATED  
164   GENERATED     break;
165   GENERATED  
166   GENERATED  
167 #               undef OP1
168   GENERATED  
169 #               undef DST
170   GENERATED  
171   GENERATED  
172   GENERATED  case ICMD_MOVE:
173   GENERATED     /* (1--1) */
174   GENERATED  
175 #               define OP1  VAROP(iptr->s1)
176   GENERATED  
177 #               define DST  VAROP(iptr->dst)
178   GENERATED  
179   GENERATED  
180 #               line 89 "src/vm/jit/verify/icmds.c"
181   GENERATED     TYPECHECK_COUNT(stat_ins_stack);
182   GENERATED     COPYTYPE(IPTR->s1, IPTR->dst);
183   GENERATED     DST->type = OP1->type;
184   GENERATED  
185 #               line 186 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
186   GENERATED  
187   GENERATED     break;
188   GENERATED  
189   GENERATED  
190 #               undef OP1
191   GENERATED  
192 #               undef DST
193   GENERATED  
194   GENERATED  
195   GENERATED  case ICMD_ILOAD:
196   GENERATED     /* (--I) */
197   GENERATED     VAROP(iptr->dst)->type = TYPE_INT;
198   GENERATED     break;
199   GENERATED  
200   GENERATED  
201   GENERATED  case ICMD_LLOAD:
202   GENERATED     /* (--L) */
203   GENERATED     VAROP(iptr->dst)->type = TYPE_LNG;
204   GENERATED     break;
205   GENERATED  
206   GENERATED  
207   GENERATED  case ICMD_FLOAD:
208   GENERATED     /* (--F) */
209   GENERATED     VAROP(iptr->dst)->type = TYPE_FLT;
210   GENERATED     break;
211   GENERATED  
212   GENERATED  
213   GENERATED  case ICMD_DLOAD:
214   GENERATED     /* (--D) */
215   GENERATED     VAROP(iptr->dst)->type = TYPE_DBL;
216   GENERATED     break;
217   GENERATED  
218   GENERATED  
219   GENERATED  case ICMD_ALOAD:
220   GENERATED     /* (--A) */
221   GENERATED  
222 #               define OP1  VAROP(IPTR->s1)
223   GENERATED  
224 #               define DST  VAROP(iptr->dst)
225   GENERATED  
226   GENERATED  
227 #               line 99 "src/vm/jit/verify/icmds.c"
228   GENERATED     TYPECHECK_COUNT(stat_ins_aload);
229   GENERATED  
230   GENERATED  
231 #            if !defined(TYPECHECK_TYPEINFERER)
232   GENERATED     /* loading a returnAddress is not allowed */
233   GENERATED     if (!TYPEDESC_IS_REFERENCE(*OP1)) {
234   GENERATED             VERIFY_ERROR("illegal instruction: ALOAD loading non-reference");
235   GENERATED     }
236   GENERATED  
237 #            endif
238   GENERATED     TYPEINFO_COPY(OP1->typeinfo,DST->typeinfo);
239   GENERATED  
240 #               line 241 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
241   GENERATED  
242   GENERATED     VAROP(iptr->dst)->type = TYPE_ADR;
243   GENERATED     break;
244   GENERATED  
245   GENERATED  
246 #               undef OP1
247   GENERATED  
248 #               undef DST
249   GENERATED  
250   GENERATED  
251   GENERATED  case ICMD_IALOAD:
252   GENERATED  case ICMD_BALOAD:
253   GENERATED  case ICMD_CALOAD:
254   GENERATED  case ICMD_SALOAD:
255   GENERATED  case ICMD_IDIV:
256   GENERATED  case ICMD_IREM:
257   GENERATED  case ICMD_ARRAYLENGTH:
258   GENERATED  case ICMD_INSTANCEOF:
259   GENERATED     /* (AI--I), (II--I), (A--I) */
260   GENERATED     maythrow = true;
261   GENERATED     VAROP(iptr->dst)->type = TYPE_INT;
262   GENERATED     break;
263   GENERATED  
264   GENERATED  
265   GENERATED  case ICMD_LALOAD:
266   GENERATED  case ICMD_LDIV:
267   GENERATED  case ICMD_LREM:
268   GENERATED     /* (AI--L), (LL--L) */
269   GENERATED     maythrow = true;
270   GENERATED     VAROP(iptr->dst)->type = TYPE_LNG;
271   GENERATED     break;
272   GENERATED  
273   GENERATED  
274   GENERATED  case ICMD_FALOAD:
275   GENERATED     /* (AI--F) */
276   GENERATED     maythrow = true;
277   GENERATED     VAROP(iptr->dst)->type = TYPE_FLT;
278   GENERATED     break;
279   GENERATED  
280   GENERATED  
281   GENERATED  case ICMD_DALOAD:
282   GENERATED     /* (AI--D) */
283   GENERATED     maythrow = true;
284   GENERATED     VAROP(iptr->dst)->type = TYPE_DBL;
285   GENERATED     break;
286   GENERATED  
287   GENERATED  
288   GENERATED  case ICMD_AALOAD:
289   GENERATED     /* (AI--A) */
290   GENERATED     maythrow = true;
291   GENERATED  
292 #               define OP1  VAROP(iptr->s1)
293   GENERATED  
294 #               define DST  VAROP(iptr->dst)
295   GENERATED  
296   GENERATED  
297 #               line 121 "src/vm/jit/verify/icmds.c"
298   GENERATED  
299 #            if !defined(TYPECHECK_TYPEINFERER)
300   GENERATED     if (!TYPEINFO_MAYBE_ARRAY_OF_REFS(OP1->typeinfo))
301   GENERATED             VERIFY_ERROR("illegal instruction: AALOAD on non-reference array");
302   GENERATED  
303 #            endif
304   GENERATED  
305   GENERATED     if (!typeinfo_init_component(&OP1->typeinfo,&DST->typeinfo))
306   GENERATED             EXCEPTION;
307   GENERATED  
308 #               line 309 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
309   GENERATED  
310   GENERATED     VAROP(iptr->dst)->type = TYPE_ADR;
311   GENERATED     break;
312   GENERATED  
313   GENERATED  
314 #               undef OP1
315   GENERATED  
316 #               undef DST
317   GENERATED  
318   GENERATED  
319   GENERATED  case ICMD_ISTORE:
320   GENERATED     /* (I--) */
321   GENERATED     STORE_LOCAL(TYPE_INT, IPTR->dst.varindex);
322   GENERATED     break;
323   GENERATED  
324   GENERATED  
325   GENERATED  case ICMD_LSTORE:
326   GENERATED     /* (L--) */
327   GENERATED     STORE_LOCAL_2_WORD(TYPE_LNG, IPTR->dst.varindex);
328   GENERATED     break;
329   GENERATED  
330   GENERATED  
331   GENERATED  case ICMD_FSTORE:
332   GENERATED     /* (F--) */
333   GENERATED     STORE_LOCAL(TYPE_FLT, IPTR->dst.varindex);
334   GENERATED     break;
335   GENERATED  
336   GENERATED  
337   GENERATED  case ICMD_DSTORE:
338   GENERATED     /* (D--) */
339   GENERATED     STORE_LOCAL_2_WORD(TYPE_DBL, IPTR->dst.varindex);
340   GENERATED     break;
341   GENERATED  
342   GENERATED  
343   GENERATED  case ICMD_ASTORE:
344   GENERATED     /* (A--|R--) */
345   GENERATED     STORE_LOCAL(VAROP(iptr->s1)->type, IPTR->dst.varindex);
346   GENERATED  
347 #               define DST  VAROP(IPTR->dst)
348   GENERATED  
349 #               define OP1  VAROP(iptr->s1)
350   GENERATED  
351   GENERATED  
352 #               line 114 "src/vm/jit/verify/icmds.c"
353   GENERATED     TYPEINFO_COPY(OP1->typeinfo, DST->typeinfo);
354   GENERATED  
355 #               line 356 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
356   GENERATED  
357   GENERATED     break;
358   GENERATED  
359   GENERATED  
360 #               undef DST
361   GENERATED  
362 #               undef OP1
363   GENERATED  
364   GENERATED  
365   GENERATED  case ICMD_IF_LEQ:
366   GENERATED  case ICMD_IF_LNE:
367   GENERATED  case ICMD_IF_LLT:
368   GENERATED  case ICMD_IF_LGE:
369   GENERATED  case ICMD_IF_LGT:
370   GENERATED  case ICMD_IF_LLE:
371   GENERATED  case ICMD_IF_LCMPEQ:
372   GENERATED  case ICMD_IF_LCMPNE:
373   GENERATED  case ICMD_IF_LCMPLT:
374   GENERATED  case ICMD_IF_LCMPGE:
375   GENERATED  case ICMD_IF_LCMPGT:
376   GENERATED  case ICMD_IF_LCMPLE:
377   GENERATED  case ICMD_IFEQ:
378   GENERATED  case ICMD_IFNE:
379   GENERATED  case ICMD_IFLT:
380   GENERATED  case ICMD_IFGE:
381   GENERATED  case ICMD_IFGT:
382   GENERATED  case ICMD_IFLE:
383   GENERATED  case ICMD_IF_ICMPEQ:
384   GENERATED  case ICMD_IF_ICMPNE:
385   GENERATED  case ICMD_IF_ICMPLT:
386   GENERATED  case ICMD_IF_ICMPGE:
387   GENERATED  case ICMD_IF_ICMPGT:
388   GENERATED  case ICMD_IF_ICMPLE:
389   GENERATED  case ICMD_IF_ACMPEQ:
390   GENERATED  case ICMD_IF_ACMPNE:
391   GENERATED  case ICMD_IFNULL:
392   GENERATED  case ICMD_IFNONNULL:
393   GENERATED     /* (L--), (LL--), (I--), (II--), (AA--), (A--) */
394   GENERATED  
395 #               define OP1  VAROP(iptr->s1)
396   GENERATED  
397   GENERATED  
398 #               line 414 "src/vm/jit/verify/icmds.c"
399   GENERATED     /* {RESULTNOW} */
400   GENERATED     TYPECHECK_COUNT(stat_ins_branch);
401   GENERATED  
402   GENERATED     /* propagate stack and variables to the target block */
403   GENERATED     REACH(IPTR->dst);
404   GENERATED  
405 #               line 406 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
406   GENERATED  
407   GENERATED     break;
408   GENERATED  
409   GENERATED  
410 #               undef OP1
411   GENERATED  
412   GENERATED  
413   GENERATED  case ICMD_IASTORE:
414   GENERATED  case ICMD_LASTORE:
415   GENERATED  case ICMD_FASTORE:
416   GENERATED  case ICMD_DASTORE:
417   GENERATED  case ICMD_AASTORE:
418   GENERATED  case ICMD_BASTORE:
419   GENERATED  case ICMD_CASTORE:
420   GENERATED  case ICMD_SASTORE:
421   GENERATED  case ICMD_PUTSTATIC:
422   GENERATED  case ICMD_PUTFIELD:
423   GENERATED  case ICMD_IASTORECONST:
424   GENERATED  case ICMD_LASTORECONST:
425   GENERATED  case ICMD_FASTORECONST:
426   GENERATED  case ICMD_DASTORECONST:
427   GENERATED  case ICMD_AASTORECONST:
428   GENERATED  case ICMD_BASTORECONST:
429   GENERATED  case ICMD_CASTORECONST:
430   GENERATED  case ICMD_SASTORECONST:
431   GENERATED  case ICMD_PUTSTATICCONST:
432   GENERATED  case ICMD_PUTFIELDCONST:
433   GENERATED     /* (AII--), (AIL--), (AIF--), (AID--), (AIA--), (1--|2--), (A1--|A2--), (AI--), (--), (A--) */
434   GENERATED     maythrow = true;
435   GENERATED     break;
436   GENERATED  
437   GENERATED  
438   GENERATED  case ICMD_POP:
439   GENERATED     /* (1--) */
440   GENERATED     break;
441   GENERATED  
442   GENERATED  
443   GENERATED  case ICMD_POP2:
444   GENERATED     /* (11--|2--) */
445   GENERATED     break;
446   GENERATED  
447   GENERATED  
448   GENERATED  case ICMD_IINC:
449   GENERATED     /* (--) */
450   GENERATED     break;
451   GENERATED  
452   GENERATED  
453   GENERATED  case ICMD_GOTO:
454   GENERATED     /* (--) */
455   GENERATED     superblockend = true;
456   GENERATED  
457   GENERATED  
458 #               line 396 "src/vm/jit/verify/icmds.c"
459   GENERATED     /* {RESULTNOW} */
460   GENERATED     TYPECHECK_COUNT(stat_ins_branch);
461   GENERATED  
462   GENERATED     /* propagate stack and variables to the target block */
463   GENERATED     REACH(IPTR->dst);
464   GENERATED  
465 #               line 466 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
466   GENERATED  
467   GENERATED     break;
468   GENERATED  
469   GENERATED  
470   GENERATED  case ICMD_JSR:
471   GENERATED     /* (--R) */
472   GENERATED     superblockend = true;
473   GENERATED  
474 #               define DST  VAROP(iptr->dst)
475   GENERATED  
476   GENERATED  
477 #               line 587 "src/vm/jit/verify/icmds.c"
478   GENERATED     TYPEINFO_INIT_RETURNADDRESS(DST->typeinfo, BPTR->next);
479   GENERATED     REACH(IPTR->sx.s23.s3.jsrtarget);
480   GENERATED  
481 #               line 482 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
482   GENERATED  
483   GENERATED     VAROP(iptr->dst)->type = TYPE_RET;
484   GENERATED     break;
485   GENERATED  
486   GENERATED  
487 #               undef DST
488   GENERATED  
489   GENERATED  
490   GENERATED  case ICMD_RET:
491   GENERATED     /* (--) */
492   GENERATED     superblockend = true;
493   GENERATED  
494   GENERATED  
495 #               line 604 "src/vm/jit/verify/icmds.c"
496   GENERATED  
497 #            if !defined(TYPECHECK_TYPEINFERER)
498   GENERATED     /* check returnAddress variable */
499   GENERATED     if (!typevector_checkretaddr(jd->var,IPTR->s1.varindex))
500   GENERATED             VERIFY_ERROR("illegal instruction: RET using non-returnAddress variable");
501   GENERATED  
502 #            endif
503   GENERATED     REACH(IPTR->dst);
504   GENERATED  
505 #               line 506 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
506   GENERATED  
507   GENERATED     break;
508   GENERATED  
509   GENERATED  
510   GENERATED  case ICMD_TABLESWITCH:
511   GENERATED     /* (I--) */
512   GENERATED     superblockend = true;
513   GENERATED  
514 #               define OP1  VAROP(iptr->s1)
515   GENERATED  
516   GENERATED  
517 #               line 463 "src/vm/jit/verify/icmds.c"
518   GENERATED     /* {RESULTNOW} */
519   GENERATED     TYPECHECK_COUNT(stat_ins_switch);
520   GENERATED  
521   GENERATED     table = IPTR->dst.table;
522   GENERATED     i = IPTR->sx.s23.s3.tablehigh
523   GENERATED     - IPTR->sx.s23.s2.tablelow + 1 + 1; /* plus default */
524   GENERATED  
525   GENERATED     while (--i >= 0) {
526   GENERATED             REACH(*table);
527   GENERATED             table++;
528   GENERATED     }
529   GENERATED  
530   GENERATED     LOG("switch done");
531   GENERATED  
532 #               line 533 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
533   GENERATED  
534   GENERATED     break;
535   GENERATED  
536   GENERATED  
537 #               undef OP1
538   GENERATED  
539   GENERATED  
540   GENERATED  case ICMD_LOOKUPSWITCH:
541   GENERATED     /* (I--) */
542   GENERATED     superblockend = true;
543   GENERATED  
544 #               define OP1  VAROP(iptr->s1)
545   GENERATED  
546   GENERATED  
547 #               line 479 "src/vm/jit/verify/icmds.c"
548   GENERATED     /* {RESULTNOW} */
549   GENERATED     TYPECHECK_COUNT(stat_ins_switch);
550   GENERATED  
551   GENERATED     lookup = IPTR->dst.lookup;
552   GENERATED     i = IPTR->sx.s23.s2.lookupcount;
553   GENERATED     REACH(IPTR->sx.s23.s3.lookupdefault);
554   GENERATED  
555   GENERATED     while (--i >= 0) {
556   GENERATED             REACH(lookup->target);
557   GENERATED             lookup++;
558   GENERATED     }
559   GENERATED  
560   GENERATED     LOG("switch done");
561   GENERATED  
562 #               line 563 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
563   GENERATED  
564   GENERATED     break;
565   GENERATED  
566   GENERATED  
567 #               undef OP1
568   GENERATED  
569   GENERATED  
570   GENERATED  case ICMD_IRETURN:
571   GENERATED  case ICMD_LRETURN:
572   GENERATED  case ICMD_FRETURN:
573   GENERATED  case ICMD_DRETURN:
574   GENERATED  case ICMD_RETURN:
575   GENERATED     /* (I--), (L--), (F--), (D--), (--) */
576   GENERATED     superblockend = true;
577   GENERATED     break;
578   GENERATED  
579   GENERATED  
580   GENERATED  case ICMD_ARETURN:
581   GENERATED  case ICMD_ATHROW:
582   GENERATED     /* (A--) */
583   GENERATED     maythrow = true;
584   GENERATED     superblockend = true;
585   GENERATED     break;
586   GENERATED  
587   GENERATED  
588   GENERATED  case ICMD_GETSTATIC:
589   GENERATED     /* (--1|--2) */
590   GENERATED     maythrow = true;
591   GENERATED  
592 #               define DST  VAROP(iptr->dst)
593   GENERATED  
594   GENERATED  
595 #               line 230 "src/vm/jit/verify/icmds.c"
596   GENERATED     if (!handle_fieldaccess(state, NULL, NULL))
597   GENERATED             return false;
598   GENERATED     maythrow = true;
599   GENERATED  
600 #               line 601 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
601   GENERATED  
602   GENERATED     break;
603   GENERATED  
604   GENERATED  
605 #               undef DST
606   GENERATED  
607   GENERATED  
608   GENERATED  case ICMD_GETFIELD:
609   GENERATED     /* (A--1|A--2) */
610   GENERATED     maythrow = true;
611   GENERATED  
612 #               define OP1  VAROP(iptr->s1)
613   GENERATED  
614 #               define DST  VAROP(iptr->dst)
615   GENERATED  
616   GENERATED  
617 #               line 224 "src/vm/jit/verify/icmds.c"
618   GENERATED     if (!handle_fieldaccess(state, VAROP(iptr->s1), NULL))
619   GENERATED             return false;
620   GENERATED     maythrow = true;
621   GENERATED  
622 #               line 623 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
623   GENERATED  
624   GENERATED     break;
625   GENERATED  
626   GENERATED  
627 #               undef OP1
628   GENERATED  
629 #               undef DST
630   GENERATED  
631   GENERATED  
632   GENERATED  case ICMD_INVOKEVIRTUAL:
633   GENERATED  case ICMD_INVOKESPECIAL:
634   GENERATED  case ICMD_INVOKESTATIC:
635   GENERATED  case ICMD_INVOKEINTERFACE:
636   GENERATED     /* (.--1|.--2|.--) */
637   GENERATED     maythrow = true;
638   GENERATED  
639 #               define OP1  VAROP(iptr->s1)
640   GENERATED  
641   GENERATED  
642 #               line 626 "src/vm/jit/verify/icmds.c"
643   GENERATED     TYPECHECK_COUNT(stat_ins_invoke);
644   GENERATED     if (!handle_invocation(state))
645   GENERATED             EXCEPTION;
646   GENERATED     TYPECHECK_COUNTIF(INSTRUCTION_IS_UNRESOLVED(IPTR), stat_ins_invoke_unresolved);
647   GENERATED  
648 #               line 649 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
649   GENERATED  
650   GENERATED     break;
651   GENERATED  
652   GENERATED  
653 #               undef OP1
654   GENERATED  
655   GENERATED  
656   GENERATED  case ICMD_CHECKCAST:
657   GENERATED     /* (A--A) */
658   GENERATED     maythrow = true;
659   GENERATED  
660 #               define OP1  VAROP(iptr->s1)
661   GENERATED  
662 #               define DST  VAROP(iptr->dst)
663   GENERATED  
664   GENERATED  
665 #               line 373 "src/vm/jit/verify/icmds.c"
666   GENERATED  
667 #            if !defined(TYPECHECK_TYPEINFERER)
668   GENERATED     /* returnAddress is not allowed */
669   GENERATED     if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
670   GENERATED             VERIFY_ERROR("Illegal instruction: CHECKCAST on non-reference");
671   GENERATED  
672 #            endif
673   GENERATED  
674   GENERATED      /* XXX only if narrower */
675   GENERATED     if (!typeinfo_init_class(&(DST->typeinfo),IPTR->sx.s23.s3.c))
676   GENERATED             EXCEPTION;
677   GENERATED  
678 #               line 679 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
679   GENERATED  
680   GENERATED     VAROP(iptr->dst)->type = TYPE_ADR;
681   GENERATED     break;
682   GENERATED  
683   GENERATED  
684 #               undef OP1
685   GENERATED  
686 #               undef DST
687   GENERATED  
688   GENERATED  
689   GENERATED  case ICMD_MULTIANEWARRAY:
690   GENERATED     /* (.--A) */
691   GENERATED     maythrow = true;
692   GENERATED  
693 #               define OP1  VAROP(iptr->s1)
694   GENERATED  
695 #               define DST  VAROP(iptr->dst)
696   GENERATED  
697   GENERATED  
698 #               line 669 "src/vm/jit/verify/icmds.c"
699   GENERATED     if (!handle_multianewarray(STATE))
700   GENERATED             EXCEPTION;
701   GENERATED  
702 #               line 703 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
703   GENERATED  
704   GENERATED     VAROP(iptr->dst)->type = TYPE_ADR;
705   GENERATED     break;
706   GENERATED  
707   GENERATED  
708 #               undef OP1
709   GENERATED  
710 #               undef DST
711   GENERATED  
712   GENERATED  
713   GENERATED  case ICMD_BUILTIN:
714   GENERATED     /* (.--1|.--2|.--) */
715   GENERATED     maythrow = true;
716   GENERATED  
717 #               define OP1  VAROP(iptr->s1)
718   GENERATED  
719   GENERATED  
720 #               line 684 "src/vm/jit/verify/icmds.c"
721   GENERATED     TYPECHECK_COUNT(stat_ins_builtin);
722   GENERATED     if (!handle_builtin(state))
723   GENERATED             EXCEPTION;
724   GENERATED  
725 #               line 726 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
726   GENERATED  
727   GENERATED     break;
728   GENERATED  
729   GENERATED  
730 #               undef OP1
731   GENERATED  
732   GENERATED  
733 #undef GENERATED
734 /* vim:filetype=c:
735  */