equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2016, 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. |
48 _pc = pc; |
48 _pc = pc; |
49 assert(pc != NULL, "no pc?"); |
49 assert(pc != NULL, "no pc?"); |
50 _cb = CodeCache::find_blob(pc); |
50 _cb = CodeCache::find_blob(pc); |
51 adjust_unextended_sp(); |
51 adjust_unextended_sp(); |
52 |
52 |
53 address original_pc = nmethod::get_deopt_original_pc(this); |
53 address original_pc = CompiledMethod::get_deopt_original_pc(this); |
54 if (original_pc != NULL) { |
54 if (original_pc != NULL) { |
55 _pc = original_pc; |
55 _pc = original_pc; |
56 _deopt_state = is_deoptimized; |
56 _deopt_state = is_deoptimized; |
57 } else { |
57 } else { |
58 _deopt_state = not_deoptimized; |
58 _deopt_state = not_deoptimized; |
70 _pc = pc; |
70 _pc = pc; |
71 assert(pc != NULL, "no pc?"); |
71 assert(pc != NULL, "no pc?"); |
72 _cb = CodeCache::find_blob(pc); |
72 _cb = CodeCache::find_blob(pc); |
73 adjust_unextended_sp(); |
73 adjust_unextended_sp(); |
74 |
74 |
75 address original_pc = nmethod::get_deopt_original_pc(this); |
75 address original_pc = CompiledMethod::get_deopt_original_pc(this); |
76 if (original_pc != NULL) { |
76 if (original_pc != NULL) { |
77 _pc = original_pc; |
77 _pc = original_pc; |
78 assert(((nmethod*)_cb)->insts_contains(_pc), "original PC must be in nmethod"); |
78 assert(((CompiledMethod*)_cb)->insts_contains(_pc), "original PC must be in CompiledMethod"); |
79 _deopt_state = is_deoptimized; |
79 _deopt_state = is_deoptimized; |
80 } else { |
80 } else { |
81 if (_cb->is_deoptimization_stub()) { |
81 if (_cb->is_deoptimization_stub()) { |
82 _deopt_state = is_deoptimized; |
82 _deopt_state = is_deoptimized; |
83 } else { |
83 } else { |
104 // assert(_pc != NULL, "no pc?"); |
104 // assert(_pc != NULL, "no pc?"); |
105 |
105 |
106 _cb = CodeCache::find_blob(_pc); |
106 _cb = CodeCache::find_blob(_pc); |
107 adjust_unextended_sp(); |
107 adjust_unextended_sp(); |
108 |
108 |
109 address original_pc = nmethod::get_deopt_original_pc(this); |
109 address original_pc = CompiledMethod::get_deopt_original_pc(this); |
110 if (original_pc != NULL) { |
110 if (original_pc != NULL) { |
111 _pc = original_pc; |
111 _pc = original_pc; |
112 _deopt_state = is_deoptimized; |
112 _deopt_state = is_deoptimized; |
113 } else { |
113 } else { |
114 _deopt_state = not_deoptimized; |
114 _deopt_state = not_deoptimized; |