Mercurial > hg > graal-jvmci-8
comparison src/share/vm/code/scopeDesc.hpp @ 1253:f70b0d9ab095
6910618: C2: Error: assert(d->is_oop(),"JVM_ArrayCopy: dst not an oop")
Summary: Mark in PcDesc call sites which return oop and save the result oop across objects reallocation during deoptimization.
Reviewed-by: never
author | kvn |
---|---|
date | Tue, 09 Feb 2010 01:31:13 -0800 |
parents | 72088be4b386 |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1252:f516d5d7a019 | 1253:f70b0d9ab095 |
---|---|
50 // nmethods possible; each scopeDesc describes a method activation | 50 // nmethods possible; each scopeDesc describes a method activation |
51 | 51 |
52 class ScopeDesc : public ResourceObj { | 52 class ScopeDesc : public ResourceObj { |
53 public: | 53 public: |
54 // Constructor | 54 // Constructor |
55 ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute); | 55 ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute, bool return_oop); |
56 | 56 |
57 // Calls above, giving default value of "serialized_null" to the | 57 // Calls above, giving default value of "serialized_null" to the |
58 // "obj_decode_offset" argument. (We don't use a default argument to | 58 // "obj_decode_offset" argument. (We don't use a default argument to |
59 // avoid a .hpp-.hpp dependency.) | 59 // avoid a .hpp-.hpp dependency.) |
60 ScopeDesc(const nmethod* code, int decode_offset, bool reexecute); | 60 ScopeDesc(const nmethod* code, int decode_offset, bool reexecute, bool return_oop); |
61 | 61 |
62 // JVM state | 62 // JVM state |
63 methodHandle method() const { return _method; } | 63 methodHandle method() const { return _method; } |
64 int bci() const { return _bci; } | 64 int bci() const { return _bci; } |
65 bool should_reexecute() const { return _reexecute; } | 65 bool should_reexecute() const { return _reexecute; } |
66 bool return_oop() const { return _return_oop; } | |
66 | 67 |
67 GrowableArray<ScopeValue*>* locals(); | 68 GrowableArray<ScopeValue*>* locals(); |
68 GrowableArray<ScopeValue*>* expressions(); | 69 GrowableArray<ScopeValue*>* expressions(); |
69 GrowableArray<MonitorValue*>* monitors(); | 70 GrowableArray<MonitorValue*>* monitors(); |
70 GrowableArray<ScopeValue*>* objects(); | 71 GrowableArray<ScopeValue*>* objects(); |
86 | 87 |
87 // JVM state | 88 // JVM state |
88 methodHandle _method; | 89 methodHandle _method; |
89 int _bci; | 90 int _bci; |
90 bool _reexecute; | 91 bool _reexecute; |
92 bool _return_oop; | |
91 | 93 |
92 // Decoding offsets | 94 // Decoding offsets |
93 int _decode_offset; | 95 int _decode_offset; |
94 int _sender_decode_offset; | 96 int _sender_decode_offset; |
95 int _locals_decode_offset; | 97 int _locals_decode_offset; |