< prev index next >

src/share/vm/interpreter/bytecodeInterpreter.cpp

Print this page




2717 
2718       /* debugger breakpoint */
2719 
2720       CASE(_breakpoint): {
2721           Bytecodes::Code original_bytecode;
2722           DECACHE_STATE();
2723           SET_LAST_JAVA_FRAME();
2724           original_bytecode = InterpreterRuntime::get_original_bytecode_at(THREAD,
2725                               METHOD, pc);
2726           RESET_LAST_JAVA_FRAME();
2727           CACHE_STATE();
2728           if (THREAD->has_pending_exception()) goto handle_exception;
2729             CALL_VM(InterpreterRuntime::_breakpoint(THREAD, METHOD, pc),
2730                                                     handle_exception);
2731 
2732           opcode = (jubyte)original_bytecode;
2733           goto opcode_switch;
2734       }
2735 
2736       DEFAULT:
2737           fatal(err_msg("Unimplemented opcode %d = %s", opcode,
2738                         Bytecodes::name((Bytecodes::Code)opcode)));
2739           goto finish;
2740 
2741       } /* switch(opc) */
2742 
2743 
2744 #ifdef USELABELS
2745     check_for_exception:
2746 #endif
2747     {
2748       if (!THREAD->has_pending_exception()) {
2749         CONTINUE;
2750       }
2751       /* We will be gcsafe soon, so flush our state. */
2752       DECACHE_PC();
2753       goto handle_exception;
2754     }
2755   do_continue: ;
2756 
2757   } /* while (1) interpreter loop */
2758 




2717 
2718       /* debugger breakpoint */
2719 
2720       CASE(_breakpoint): {
2721           Bytecodes::Code original_bytecode;
2722           DECACHE_STATE();
2723           SET_LAST_JAVA_FRAME();
2724           original_bytecode = InterpreterRuntime::get_original_bytecode_at(THREAD,
2725                               METHOD, pc);
2726           RESET_LAST_JAVA_FRAME();
2727           CACHE_STATE();
2728           if (THREAD->has_pending_exception()) goto handle_exception;
2729             CALL_VM(InterpreterRuntime::_breakpoint(THREAD, METHOD, pc),
2730                                                     handle_exception);
2731 
2732           opcode = (jubyte)original_bytecode;
2733           goto opcode_switch;
2734       }
2735 
2736       DEFAULT:
2737           fatal("Unimplemented opcode %d = %s", opcode,
2738                 Bytecodes::name((Bytecodes::Code)opcode));
2739           goto finish;
2740 
2741       } /* switch(opc) */
2742 
2743 
2744 #ifdef USELABELS
2745     check_for_exception:
2746 #endif
2747     {
2748       if (!THREAD->has_pending_exception()) {
2749         CONTINUE;
2750       }
2751       /* We will be gcsafe soon, so flush our state. */
2752       DECACHE_PC();
2753       goto handle_exception;
2754     }
2755   do_continue: ;
2756 
2757   } /* while (1) interpreter loop */
2758 


< prev index next >