410
411 // Interpretation methods (secondary)
412 void interp1 (BytecodeStream *itr);
413 void do_exception_edge (BytecodeStream *itr);
414 void check_type (CellTypeState expected, CellTypeState actual);
415 void ppstore (CellTypeState *in, int loc_no);
416 void ppload (CellTypeState *out, int loc_no);
417 void ppush1 (CellTypeState in);
418 void ppush (CellTypeState *in);
419 void ppop1 (CellTypeState out);
420 void ppop (CellTypeState *out);
421 void ppop_any (int poplen);
422 void pp (CellTypeState *in, CellTypeState *out);
423 void pp_new_ref (CellTypeState *in, int bci);
424 void pp_new_valuetype (CellTypeState *in, int bci);
425 void ppdupswap (int poplen, const char *out);
426 void do_ldc (int bci);
427 void do_astore (int idx);
428 void do_vstore (int idx);
429 void do_jsr (int delta);
430 void do_field (int is_get, int is_static, int is_valuetype, int idx, int bci);
431 void do_method (int is_static, int idx, int bci);
432 void do_vwithfield (int idx, int bci);
433 void do_multianewarray (int dims, int bci);
434 void do_monitorenter (int bci);
435 void do_monitorexit (int bci);
436 void do_return_monitor_check ();
437 void do_checkcast ();
438 CellTypeState *sigchar_to_effect (char sigch, int bci, CellTypeState *out);
439 int copy_cts (CellTypeState *dst, CellTypeState *src);
440
441 // Error handling
442 void error_work (const char *format, va_list ap) ATTRIBUTE_PRINTF(2, 0);
443 void report_error (const char *format, ...) ATTRIBUTE_PRINTF(2, 3);
444 void verify_error (const char *format, ...) ATTRIBUTE_PRINTF(2, 3);
445 bool got_error() { return _got_error; }
446
447 // Create result set
448 bool _report_result;
449 bool _report_result_for_send; // Unfortunatly, stackmaps for sends are special, so we need some extra
450 BytecodeStream *_itr_send; // variables to handle them properly.
|
410
411 // Interpretation methods (secondary)
412 void interp1 (BytecodeStream *itr);
413 void do_exception_edge (BytecodeStream *itr);
414 void check_type (CellTypeState expected, CellTypeState actual);
415 void ppstore (CellTypeState *in, int loc_no);
416 void ppload (CellTypeState *out, int loc_no);
417 void ppush1 (CellTypeState in);
418 void ppush (CellTypeState *in);
419 void ppop1 (CellTypeState out);
420 void ppop (CellTypeState *out);
421 void ppop_any (int poplen);
422 void pp (CellTypeState *in, CellTypeState *out);
423 void pp_new_ref (CellTypeState *in, int bci);
424 void pp_new_valuetype (CellTypeState *in, int bci);
425 void ppdupswap (int poplen, const char *out);
426 void do_ldc (int bci);
427 void do_astore (int idx);
428 void do_vstore (int idx);
429 void do_jsr (int delta);
430 void do_field (int is_get, int is_static, int idx, int bci);
431 void do_method (int is_static, int idx, int bci);
432 void do_vwithfield (int idx, int bci);
433 void do_multianewarray (int dims, int bci);
434 void do_monitorenter (int bci);
435 void do_monitorexit (int bci);
436 void do_return_monitor_check ();
437 void do_checkcast ();
438 CellTypeState *sigchar_to_effect (char sigch, int bci, CellTypeState *out);
439 int copy_cts (CellTypeState *dst, CellTypeState *src);
440
441 // Error handling
442 void error_work (const char *format, va_list ap) ATTRIBUTE_PRINTF(2, 0);
443 void report_error (const char *format, ...) ATTRIBUTE_PRINTF(2, 3);
444 void verify_error (const char *format, ...) ATTRIBUTE_PRINTF(2, 3);
445 bool got_error() { return _got_error; }
446
447 // Create result set
448 bool _report_result;
449 bool _report_result_for_send; // Unfortunatly, stackmaps for sends are special, so we need some extra
450 BytecodeStream *_itr_send; // variables to handle them properly.
|