mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8231756: [JVMCI] need support for deoptimizing virtual byte arrays encoding non-byte primitives
Reviewed-by: kvn
This commit is contained in:
parent
430f8020fd
commit
12f8b52fb8
13 changed files with 332 additions and 72 deletions
|
@ -97,7 +97,7 @@ ScopeValue* DebugInfoReadStream::get_cached_object() {
|
|||
enum { LOCATION_CODE = 0, CONSTANT_INT_CODE = 1, CONSTANT_OOP_CODE = 2,
|
||||
CONSTANT_LONG_CODE = 3, CONSTANT_DOUBLE_CODE = 4,
|
||||
OBJECT_CODE = 5, OBJECT_ID_CODE = 6,
|
||||
AUTO_BOX_OBJECT_CODE = 7 };
|
||||
AUTO_BOX_OBJECT_CODE = 7, MARKER_CODE = 8 };
|
||||
|
||||
ScopeValue* ScopeValue::read_from(DebugInfoReadStream* stream) {
|
||||
ScopeValue* result = NULL;
|
||||
|
@ -110,6 +110,7 @@ ScopeValue* ScopeValue::read_from(DebugInfoReadStream* stream) {
|
|||
case OBJECT_CODE: result = stream->read_object_value(false /*is_auto_box*/); break;
|
||||
case AUTO_BOX_OBJECT_CODE: result = stream->read_object_value(true /*is_auto_box*/); break;
|
||||
case OBJECT_ID_CODE: result = stream->get_cached_object(); break;
|
||||
case MARKER_CODE: result = new MarkerValue(); break;
|
||||
default: ShouldNotReachHere();
|
||||
}
|
||||
return result;
|
||||
|
@ -130,6 +131,16 @@ void LocationValue::print_on(outputStream* st) const {
|
|||
location().print_on(st);
|
||||
}
|
||||
|
||||
// MarkerValue
|
||||
|
||||
void MarkerValue::write_on(DebugInfoWriteStream* stream) {
|
||||
stream->write_int(MARKER_CODE);
|
||||
}
|
||||
|
||||
void MarkerValue::print_on(outputStream* st) const {
|
||||
st->print("marker");
|
||||
}
|
||||
|
||||
// ObjectValue
|
||||
|
||||
void ObjectValue::set_value(oop value) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue