--- old/src/hotspot/share/classfile/vmSymbols.cpp 2019-03-11 14:25:42.374355484 +0100 +++ new/src/hotspot/share/classfile/vmSymbols.cpp 2019-03-11 14:25:42.174355487 +0100 @@ -98,7 +98,7 @@ _type_signatures[T_SHORT] = short_signature(); _type_signatures[T_BOOLEAN] = bool_signature(); _type_signatures[T_VOID] = void_signature(); - // no single signatures for T_OBJECT or T_ARRAY + // no single signatures for T_OBJECT, T_VALUETYPE or T_ARRAY #ifdef ASSERT for (int i = (int)T_BOOLEAN; i < (int)T_VOID+1; i++) { Symbol* s = _type_signatures[i]; @@ -218,7 +218,7 @@ return result; } } - return T_OBJECT; + return s->char_at(0) == 'Q' ? T_VALUETYPE : T_OBJECT; } @@ -598,6 +598,8 @@ case vmIntrinsics::_updateByteBufferCRC32: if (!UseCRC32Intrinsics) return true; break; + case vmIntrinsics::_makePrivateBuffer: + case vmIntrinsics::_finishPrivateBuffer: case vmIntrinsics::_getReference: case vmIntrinsics::_getBoolean: case vmIntrinsics::_getByte: @@ -607,6 +609,7 @@ case vmIntrinsics::_getLong: case vmIntrinsics::_getFloat: case vmIntrinsics::_getDouble: + case vmIntrinsics::_getValue: case vmIntrinsics::_putReference: case vmIntrinsics::_putBoolean: case vmIntrinsics::_putByte: @@ -616,6 +619,7 @@ case vmIntrinsics::_putLong: case vmIntrinsics::_putFloat: case vmIntrinsics::_putDouble: + case vmIntrinsics::_putValue: case vmIntrinsics::_getReferenceVolatile: case vmIntrinsics::_getBooleanVolatile: case vmIntrinsics::_getByteVolatile: