Mercurial > hg > icedtea8-forest > hotspot
changeset 10388:b2000ea410b0 jdk8u212-b04
8221355: Performance regression after JDK-8155635 backport into 8u
Reviewed-by: shade, roland
author | sgehwolf |
---|---|
date | Wed, 10 Apr 2019 11:38:47 +0200 |
parents | 865b7735e833 |
children | 2269f0d51ac0 |
files | src/share/vm/opto/library_call.cpp |
diffstat | 1 files changed, 4 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp Wed Apr 03 05:15:08 2019 +0100 +++ b/src/share/vm/opto/library_call.cpp Wed Apr 10 11:38:47 2019 +0200 @@ -2608,9 +2608,10 @@ Node* offset = top(); Node* val; + // The base is either a Java object or a value produced by Unsafe.staticFieldBase + Node* base = argument(1); // type: oop + if (!is_native_ptr) { - // The base is either a Java object or a value produced by Unsafe.staticFieldBase - Node* base = argument(1); // type: oop // The offset is a value produced by Unsafe.staticFieldOffset or Unsafe.objectFieldOffset offset = argument(2); // type: long // We currently rely on the cookies produced by Unsafe.xxxFieldOffset @@ -2630,9 +2631,7 @@ val = is_store ? argument(3) : NULL; } - // Can base be NULL? Otherwise, always on-heap access. - bool can_access_non_heap = TypePtr::NULL_PTR->higher_equal(_gvn.type(heap_base_oop)); - if (can_access_non_heap && type == T_OBJECT) { + if ((_gvn.type(base)->isa_ptr() == TypePtr::NULL_PTR) && type == T_OBJECT) { return false; // off-heap oop accesses are not supported }