hotspot/src/share/vm/interpreter/templateInterpreter.cpp
changeset 7913 dd096a83bdbb
parent 7397 5b173b4ca846
child 9176 42d9d1010f38
equal deleted inserted replaced
7901:ea3d83447861 7913:dd096a83bdbb
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   590 // the bytecode.
   590 // the bytecode.
   591 // Note: Bytecodes::_athrow (C1 only) and Bytecodes::_return are the special cases
   591 // Note: Bytecodes::_athrow (C1 only) and Bytecodes::_return are the special cases
   592 //       that do not return "Interpreter::deopt_entry(vtos, 0)"
   592 //       that do not return "Interpreter::deopt_entry(vtos, 0)"
   593 address TemplateInterpreter::deopt_reexecute_entry(methodOop method, address bcp) {
   593 address TemplateInterpreter::deopt_reexecute_entry(methodOop method, address bcp) {
   594   assert(method->contains(bcp), "just checkin'");
   594   assert(method->contains(bcp), "just checkin'");
   595   Bytecodes::Code code   = Bytecodes::java_code_at(bcp);
   595   Bytecodes::Code code   = Bytecodes::java_code_at(method, bcp);
   596   if (code == Bytecodes::_return) {
   596   if (code == Bytecodes::_return) {
   597     // This is used for deopt during registration of finalizers
   597     // This is used for deopt during registration of finalizers
   598     // during Object.<init>.  We simply need to resume execution at
   598     // during Object.<init>.  We simply need to resume execution at
   599     // the standard return vtos bytecode to pop the frame normally.
   599     // the standard return vtos bytecode to pop the frame normally.
   600     // reexecuting the real bytecode would cause double registration
   600     // reexecuting the real bytecode would cause double registration