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 * Copyright (c) 2014, Red Hat Inc. All rights reserved. |
3 * Copyright (c) 2014, Red Hat Inc. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
53 _pc = pc; |
53 _pc = pc; |
54 assert(pc != NULL, "no pc?"); |
54 assert(pc != NULL, "no pc?"); |
55 _cb = CodeCache::find_blob(pc); |
55 _cb = CodeCache::find_blob(pc); |
56 adjust_unextended_sp(); |
56 adjust_unextended_sp(); |
57 |
57 |
58 address original_pc = nmethod::get_deopt_original_pc(this); |
58 address original_pc = CompiledMethod::get_deopt_original_pc(this); |
59 if (original_pc != NULL) { |
59 if (original_pc != NULL) { |
60 _pc = original_pc; |
60 _pc = original_pc; |
61 _deopt_state = is_deoptimized; |
61 _deopt_state = is_deoptimized; |
62 } else { |
62 } else { |
63 _deopt_state = not_deoptimized; |
63 _deopt_state = not_deoptimized; |
77 _pc = pc; |
77 _pc = pc; |
78 assert(pc != NULL, "no pc?"); |
78 assert(pc != NULL, "no pc?"); |
79 _cb = CodeCache::find_blob(pc); |
79 _cb = CodeCache::find_blob(pc); |
80 adjust_unextended_sp(); |
80 adjust_unextended_sp(); |
81 |
81 |
82 address original_pc = nmethod::get_deopt_original_pc(this); |
82 address original_pc = CompiledMethod::get_deopt_original_pc(this); |
83 if (original_pc != NULL) { |
83 if (original_pc != NULL) { |
84 _pc = original_pc; |
84 _pc = original_pc; |
85 assert(((nmethod*)_cb)->insts_contains(_pc), "original PC must be in nmethod"); |
85 assert(((CompiledMethod*)_cb)->insts_contains(_pc), "original PC must be in CompiledMethod"); |
86 _deopt_state = is_deoptimized; |
86 _deopt_state = is_deoptimized; |
87 } else { |
87 } else { |
88 _deopt_state = not_deoptimized; |
88 _deopt_state = not_deoptimized; |
89 } |
89 } |
90 } |
90 } |
109 // assert(_pc != NULL, "no pc?"); |
109 // assert(_pc != NULL, "no pc?"); |
110 |
110 |
111 _cb = CodeCache::find_blob(_pc); |
111 _cb = CodeCache::find_blob(_pc); |
112 adjust_unextended_sp(); |
112 adjust_unextended_sp(); |
113 |
113 |
114 address original_pc = nmethod::get_deopt_original_pc(this); |
114 address original_pc = CompiledMethod::get_deopt_original_pc(this); |
115 if (original_pc != NULL) { |
115 if (original_pc != NULL) { |
116 _pc = original_pc; |
116 _pc = original_pc; |
117 _deopt_state = is_deoptimized; |
117 _deopt_state = is_deoptimized; |
118 } else { |
118 } else { |
119 _deopt_state = not_deoptimized; |
119 _deopt_state = not_deoptimized; |