1 /* |
1 /* |
2 * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2010, 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. |
224 |
224 |
225 // Return true if the interpreter can prove that the given bytecode has |
225 // Return true if the interpreter can prove that the given bytecode has |
226 // not yet been executed (in Java semantics, not in actual operation). |
226 // not yet been executed (in Java semantics, not in actual operation). |
227 bool AbstractInterpreter::is_not_reached(methodHandle method, int bci) { |
227 bool AbstractInterpreter::is_not_reached(methodHandle method, int bci) { |
228 address bcp = method->bcp_from(bci); |
228 address bcp = method->bcp_from(bci); |
229 |
229 Bytecodes::Code code = Bytecodes::code_at(bcp, method()); |
230 if (!Bytecode_at(bcp)->must_rewrite()) { |
230 |
|
231 if (!Bytecode_at(bcp)->must_rewrite(code)) { |
231 // might have been reached |
232 // might have been reached |
232 return false; |
233 return false; |
233 } |
234 } |
234 |
235 |
235 // the bytecode might not be rewritten if the method is an accessor, etc. |
236 // the bytecode might not be rewritten if the method is an accessor, etc. |