diff --git a/8046294-Generate-the-4-byte-timestamp-randomly.patch b/8046294-Generate-the-4-byte-timestamp-randomly.patch deleted file mode 100644 index c0477ed090c392f6198df05cbff97293d89b704c..0000000000000000000000000000000000000000 --- a/8046294-Generate-the-4-byte-timestamp-randomly.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff --git a/jdk/src/share/classes/sun/security/ssl/RandomCookie.java b/jdk/src/share/classes/sun/security/ssl/RandomCookie.java -index 5f414c408..ce27f0df4 100644 ---- a/jdk/src/share/classes/sun/security/ssl/RandomCookie.java -+++ b/jdk/src/share/classes/sun/security/ssl/RandomCookie.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2007, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -41,21 +41,8 @@ final class RandomCookie { - byte random_bytes[]; // exactly 32 bytes - - RandomCookie(SecureRandom generator) { -- long temp = System.currentTimeMillis() / 1000; -- int gmt_unix_time; -- if (temp < Integer.MAX_VALUE) { -- gmt_unix_time = (int) temp; -- } else { -- gmt_unix_time = Integer.MAX_VALUE; // Whoops! -- } -- - random_bytes = new byte[32]; - generator.nextBytes(random_bytes); -- -- random_bytes[0] = (byte)(gmt_unix_time >> 24); -- random_bytes[1] = (byte)(gmt_unix_time >> 16); -- random_bytes[2] = (byte)(gmt_unix_time >> 8); -- random_bytes[3] = (byte)gmt_unix_time; - } - - RandomCookie(HandshakeInStream m) throws IOException { -@@ -68,22 +55,15 @@ final class RandomCookie { - } - - void print(PrintStream s) { -- int i, gmt_unix_time; -- -- gmt_unix_time = random_bytes[0] << 24; -- gmt_unix_time += random_bytes[1] << 16; -- gmt_unix_time += random_bytes[2] << 8; -- gmt_unix_time += random_bytes[3]; -- -- s.print("GMT: " + gmt_unix_time + " "); -- s.print("bytes = { "); -- -- for (i = 4; i < 32; i++) { -- if (i != 4) { -- s.print(", "); -+ s.print("random_bytes = {"); -+ for (int i = 0; i < 32; i++) { -+ int k = random_bytes[i] & 0xFF; -+ if (i != 0) { -+ s.print(' '); - } -- s.print(random_bytes[i] & 0x0ff); -+ s.print(Utilities.hexDigits[k >>> 4]); -+ s.print(Utilities.hexDigits[k & 0xf]); - } -- s.println(" }"); -+ s.println("}"); - } - } -diff --git a/jdk/src/share/classes/sun/security/ssl/Utilities.java b/jdk/src/share/classes/sun/security/ssl/Utilities.java -index aefb02c9a..9b267f6e1 100644 ---- a/jdk/src/share/classes/sun/security/ssl/Utilities.java -+++ b/jdk/src/share/classes/sun/security/ssl/Utilities.java -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -33,6 +33,11 @@ import sun.net.util.IPAddressUtil; - * A utility class to share the static methods. - */ - final class Utilities { -+ /** -+ * hex digits -+ */ -+ static final char[] hexDigits = "0123456789ABCDEF".toCharArray(); -+ - /** - * Puts {@code hostname} into the {@code serverNames} list. - *
diff --git a/8148754-C2-loop-unrolling-fails-due-to-unexpected-gr.patch b/8148754-C2-loop-unrolling-fails-due-to-unexpected-gr.patch
deleted file mode 100644
index 47340d046a525635f1e339a226338360c0477712..0000000000000000000000000000000000000000
--- a/8148754-C2-loop-unrolling-fails-due-to-unexpected-gr.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From be0206e834bab370da41cf9ec9e6b9be710e1987 Mon Sep 17 00:00:00 2001
-Date: Fri, 19 Apr 2019 17:40:19 +0000
-Subject: [PATCH] 8148754: C2 loop unrolling fails due to unexpected graph shape
-
-Summary: C2 loop unrolling fails due to unexpected graph shape
-Bug url: https://bugs.openjdk.java.net/browse/JDK-8148754
----
- hotspot/src/share/vm/opto/loopTransform.cpp | 44 ++++++++-------------
- hotspot/src/share/vm/opto/loopnode.cpp | 36 +++++++++++++++++
- hotspot/src/share/vm/opto/loopnode.hpp | 3 ++
- hotspot/src/share/vm/opto/superword.cpp | 18 +++------
- 4 files changed, 61 insertions(+), 40 deletions(-)
-
-diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp
-index e3637b652..f6783b910 100644
---- a/hotspot/src/share/vm/opto/loopTransform.cpp
-+++ b/hotspot/src/share/vm/opto/loopTransform.cpp
-@@ -1222,21 +1222,14 @@ void PhaseIdealLoop::do_unroll( IdealLoopTree *loop, Node_List &old_new, bool ad
-
- Node *opaq = NULL;
- if (adjust_min_trip) { // If not maximally unrolling, need adjustment
-- // Search for zero-trip guard.
-- assert( loop_head->is_main_loop(), "" );
-- assert( ctrl->Opcode() == Op_IfTrue || ctrl->Opcode() == Op_IfFalse, "" );
-- Node *iff = ctrl->in(0);
-- assert( iff->Opcode() == Op_If, "" );
-- Node *bol = iff->in(1);
-- assert( bol->Opcode() == Op_Bool, "" );
-- Node *cmp = bol->in(1);
-- assert( cmp->Opcode() == Op_CmpI, "" );
-- opaq = cmp->in(2);
-- // Occasionally it's possible for a zero-trip guard Opaque1 node to be
-- // optimized away and then another round of loop opts attempted.
-- // We can not optimize this particular loop in that case.
-- if (opaq->Opcode() != Op_Opaque1)
-- return; // Cannot find zero-trip guard! Bail out!
-+ // Check the shape of the graph at the loop entry. If an inappropriate
-+ // graph shape is encountered, the compiler bails out loop unrolling;
-+ // compilation of the method will still succeed.
-+ if (!is_canonical_main_loop_entry(loop_head)) {
-+ return;
-+ }
-+ // get a not shared opaque' node for Zero-trip test
-+ opaq = ctrl->in(0)->in(1)->in(1)->in(2);
- // Zero-trip test uses an 'opaque' node which is not shared.
- assert(opaq->outcnt() == 1 && opaq->in(1) == limit, "");
- }
-@@ -1806,7 +1799,6 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) {
- #endif
- assert(RangeCheckElimination, "");
- CountedLoopNode *cl = loop->_head->as_CountedLoop();
-- assert(cl->is_main_loop(), "");
-
- // protect against stride not being a constant
- if (!cl->stride_is_con())
-@@ -1818,20 +1810,18 @@ void PhaseIdealLoop::do_range_check( IdealLoopTree *loop, Node_List &old_new ) {
- // to not ever trip end tests
- Node *main_limit = cl->limit();
-
-+ // Check graph shape. Cannot optimize a loop if zero-trip
-+ // Opaque1 node is optimized away and then another round
-+ // of loop opts attempted.
-+ if (!is_canonical_main_loop_entry(cl)) {
-+ return;
-+ }
-+
- // Need to find the main-loop zero-trip guard
- Node *ctrl = cl->in(LoopNode::EntryControl);
-- assert(ctrl->Opcode() == Op_IfTrue || ctrl->Opcode() == Op_IfFalse, "");
- Node *iffm = ctrl->in(0);
-- assert(iffm->Opcode() == Op_If, "");
-- Node *bolzm = iffm->in(1);
-- assert(bolzm->Opcode() == Op_Bool, "");
-- Node *cmpzm = bolzm->in(1);
-- assert(cmpzm->is_Cmp(), "");
-- Node *opqzm = cmpzm->in(2);
-- // Can not optimize a loop if zero-trip Opaque1 node is optimized
-- // away and then another round of loop opts attempted.
-- if (opqzm->Opcode() != Op_Opaque1)
-- return;
-+ // get the zero-trip Opaque1 node for testing the main limits
-+ Node *opqzm = iffm->in(1)->in(1)->in(2);
- assert(opqzm->in(1) == main_limit, "do not understand situation");
-
- // Find the pre-loop limit; we will expand it's iterations to
-diff --git a/hotspot/src/share/vm/opto/loopnode.cpp b/hotspot/src/share/vm/opto/loopnode.cpp
-index 37c56681d..e2c0645cf 100644
---- a/hotspot/src/share/vm/opto/loopnode.cpp
-+++ b/hotspot/src/share/vm/opto/loopnode.cpp
-@@ -3284,6 +3284,42 @@ Node* PhaseIdealLoop::compute_lca_of_uses(Node* n, Node* early, bool verify) {
- return LCA;
- }
-
-+// Check the shape of the graph at the loop entry. In some cases,
-+// the shape of the graph does not match the shape outlined below.
-+// That is caused by the Opaque1 node "protecting" the shape of
-+// the graph being removed by, for example, the IGVN performed
-+// in PhaseIdealLoop::build_and_optimize().
-+//
-+// After the Opaque1 node has been removed, optimizations (e.g., split-if,
-+// loop unswitching, and IGVN, or a combination of them) can freely change
-+// the graph's shape. As a result, the graph shape outlined below cannot
-+// be guaranteed anymore.
-+bool PhaseIdealLoop::is_canonical_main_loop_entry(CountedLoopNode* cl) {
-+ assert(cl->is_main_loop(), "check should be applied to main loops");
-+ Node* ctrl = cl->in(LoopNode::EntryControl);
-+ if (ctrl == NULL || (!ctrl->is_IfTrue() && !ctrl->is_IfFalse())) {
-+ return false;
-+ }
-+ Node* iffm = ctrl->in(0);
-+ if (iffm == NULL || !iffm->is_If()) {
-+ return false;
-+ }
-+ Node* bolzm = iffm->in(1);
-+ if (bolzm == NULL || !bolzm->is_Bool()) {
-+ return false;
-+ }
-+ Node* cmpzm = bolzm->in(1);
-+ if (cmpzm == NULL || !cmpzm->is_Cmp()) {
-+ return false;
-+ }
-+ // get the compare node, if null or not return false
-+ Node* opqzm = cmpzm->in(2);
-+ if (opqzm == NULL || opqzm->Opcode() != Op_Opaque1) {
-+ return false;
-+ }
-+ return true;
-+}
-+
- //------------------------------get_late_ctrl----------------------------------
- // Compute latest legal control.
- Node *PhaseIdealLoop::get_late_ctrl( Node *n, Node *early ) {
-diff --git a/hotspot/src/share/vm/opto/loopnode.hpp b/hotspot/src/share/vm/opto/loopnode.hpp
-index 150d1be0f..558b10504 100644
---- a/hotspot/src/share/vm/opto/loopnode.hpp
-+++ b/hotspot/src/share/vm/opto/loopnode.hpp
-@@ -621,6 +621,9 @@ private:
- bool cast_incr_before_loop(Node* incr, Node* ctrl, Node* loop);
-
- public:
-+
-+ static bool is_canonical_main_loop_entry(CountedLoopNode* cl);
-+
- bool has_node( Node* n ) const {
- guarantee(n != NULL, "No Node.");
- return _nodes[n->_idx] != NULL;
-diff --git a/hotspot/src/share/vm/opto/superword.cpp b/hotspot/src/share/vm/opto/superword.cpp
-index 0bc171b5c..a14210ee2 100644
---- a/hotspot/src/share/vm/opto/superword.cpp
-+++ b/hotspot/src/share/vm/opto/superword.cpp
-@@ -2209,21 +2209,13 @@ void SuperWord::align_initial_loop_index(MemNode* align_to_ref) {
- //----------------------------get_pre_loop_end---------------------------
- // Find pre loop end from main loop. Returns null if none.
- CountedLoopEndNode* SuperWord::get_pre_loop_end(CountedLoopNode* cl) {
-- Node* ctrl = cl->in(LoopNode::EntryControl);
-- if (!ctrl->is_IfTrue() && !ctrl->is_IfFalse()) return NULL;
-- Node* iffm = ctrl->in(0);
-- if (!iffm->is_If()) return NULL;
-- Node* bolzm = iffm->in(1);
-- if (!bolzm->is_Bool()) return NULL;
-- Node* cmpzm = bolzm->in(1);
-- if (!cmpzm->is_Cmp()) return NULL;
-- Node* opqzm = cmpzm->in(2);
-- // Can not optimize a loop if zero-trip Opaque1 node is optimized
-- // away and then another round of loop opts attempted.
-- if (opqzm->Opcode() != Op_Opaque1) {
-+ // The loop cannot be optimized if the graph shape at
-+ // the loop entry is inappropriate.
-+ if (!PhaseIdealLoop::is_canonical_main_loop_entry(cl)) {
- return NULL;
- }
-- Node* p_f = iffm->in(0);
-+
-+ Node* p_f = cl->in(LoopNode::EntryControl)->in(0)->in(0);
- if (!p_f->is_IfFalse()) return NULL;
- if (!p_f->in(0)->is_CountedLoopEnd()) return NULL;
- CountedLoopEndNode* pre_end = p_f->in(0)->as_CountedLoopEnd();
---
-2.19.0
-
diff --git a/8151788.patch b/8151788.patch
deleted file mode 100644
index 4a91f72c9228cd20e9a42bc874d322f9736e4f5d..0000000000000000000000000000000000000000
--- a/8151788.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From bf24abe7a9499638a43dfd03fecfbfb763430a63 Mon Sep 17 00:00:00 2001
-Date: Thu, 27 Jun 2019 11:24:39 +0000
-Subject: [PATCH] Backport of JDK-8151788
-
-summary: NullPointerException from ntlm.Client.type3
-LLT:
-Bug url: https://bugs.openjdk.java.net/browse/JDK-8151788
----
- .../classes/com/sun/security/ntlm/NTLM.java | 2 +-
- .../www/protocol/http/NULLTargetInfoTest.java | 58 +++++++++++++++++++
- 2 files changed, 59 insertions(+), 1 deletion(-)
- create mode 100644 jdk/test/sun/net/www/protocol/http/NULLTargetInfoTest.java
-
-diff --git a/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java b/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
-index da18e2199a..249cd226c4 100644
---- a/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
-+++ b/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java
-@@ -167,7 +167,7 @@ class NTLM {
-
- byte[] readSecurityBuffer(int offset) throws NTLMException {
- int pos = readInt(offset+4);
-- if (pos == 0) return null;
-+ if (pos == 0) return new byte[0];
- try {
- return Arrays.copyOfRange(
- internal, pos, pos + readShort(offset));
-diff --git a/jdk/test/sun/net/www/protocol/http/NULLTargetInfoTest.java b/jdk/test/sun/net/www/protocol/http/NULLTargetInfoTest.java
-new file mode 100644
-index 0000000000..d8e88554f8
---- /dev/null
-+++ b/jdk/test/sun/net/www/protocol/http/NULLTargetInfoTest.java
-@@ -0,0 +1,58 @@
-+/*
-+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit www.oracle.com if you need additional information or have any
-+ * questions.
-+ */
-+
-+/*
-+ * @test
-+ * @bug 8151788
-+ * @summary NullPointerException from ntlm.Client.type3
-+ * @modules java.base/com.sun.security.ntlm
-+ * @run main NULLTargetInfoTest
-+ */
-+import com.sun.security.ntlm.Client;
-+
-+public class NULLTargetInfoTest {
-+
-+ public static void main(String[] args) throws Exception {
-+ Client c = new Client(null, "host", "user", "domain", "pass".toCharArray());
-+ c.type1();
-+ // this input does have the 0x800000 bit(NTLMSSP_NEGOTIATE_TARGET_INFO) set
-+ // but after offset 40 all eight bytes are all zero which means there is no
-+ // security buffer for target info.
-+ byte[] type2 = hex(
-+ "4E 54 4C 4D 53 53 50 00 02 00 00 00 00 00 00 00"
-+ + "00 00 00 00 05 82 89 00 0B 87 81 B6 2D 6E 8B C1"
-+ + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
-+ byte[] nonce = new byte[10];
-+ c.type3(type2, nonce);
-+ }
-+
-+ private static byte[] hex(String str) {
-+ str = str.replaceAll("\\s", "");
-+ byte[] response = new byte[str.length() / 2];
-+ int index = 0;
-+ for (int i = 0; i < str.length(); i += 2) {
-+ response[index++] = Integer.valueOf(str.substring(i, i + 2), 16).byteValue();
-+ }
-+ return response;
-+ }
-+}
---
-2.19.0-rc1
-
diff --git a/8161072.patch b/8161072.patch
deleted file mode 100644
index 3393688571db7079930bbabf705de7a169c01738..0000000000000000000000000000000000000000
--- a/8161072.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From e42367ab7ce5d66823ef32ea00dbc5e44e3b20d1 Mon Sep 17 00:00:00 2001
-Date: Tue, 28 May 2019 21:38:21 +0000
-Subject: [PATCH] 8161072: AArch64: jtreg compiler/uncommontrap/TestDeoptOOM failure
-
-Summary:
-Bug url: https://bugs.openjdk.java.net/browse/JDK-8161072
-
----
- .../cpu/aarch64/vm/templateInterpreter_aarch64.cpp | 25 +++++++++++-----------
- 1 file changed, 12 insertions(+), 13 deletions(-)
-
-diff --git a/hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp
-index 8dede4b74..566ddd173 100644
---- a/hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp
-+++ b/hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp
-@@ -223,19 +223,6 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state,
- __ restore_locals();
- __ restore_constant_pool_cache();
- __ get_method(rmethod);
--
-- // handle exceptions
-- {
-- Label L;
-- __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
-- __ cbz(rscratch1, L);
-- __ call_VM(noreg,
-- CAST_FROM_FN_PTR(address,
-- InterpreterRuntime::throw_pending_exception));
-- __ should_not_reach_here();
-- __ bind(L);
-- }
--
- __ get_dispatch();
-
- // Calculate stack limit
-@@ -253,6 +240,18 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state,
- // NULL last_sp until next java call
- __ str(zr, Address(rfp, frame::interpreter_frame_last_sp_offset * wordSize));
-
-+ // handle exceptions
-+ {
-+ Label L;
-+ __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
-+ __ cbz(rscratch1, L);
-+ __ call_VM(noreg,
-+ CAST_FROM_FN_PTR(address,
-+ InterpreterRuntime::throw_pending_exception));
-+ __ should_not_reach_here();
-+ __ bind(L);
-+ }
-+
- __ dispatch_next(state, step);
- return entry;
- }
---
-2.12.3
-
diff --git a/8171537.patch b/8171537.patch
deleted file mode 100644
index 5e2d6c59384bb6a42484be29f52a7214416bf8a1..0000000000000000000000000000000000000000
--- a/8171537.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 26c54187c40901643d0cf65a985c98ddcee40bf0 Mon Sep 17 00:00:00 2001
-Date: Fri, 19 Apr 2019 17:42:56 +0000
-Subject: [PATCH] 8171537: aarch64: compiler/c1/Test6849574.java generates guarantee failure in C1
-
-Bug url: https://bugs.openjdk.java.net/browse/JDK-8171537
-
----
- hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-index 6e225870e..e536ce649 100644
---- a/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-+++ b/hotspot/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
-@@ -3199,7 +3199,7 @@ void LIR_Assembler::peephole(LIR_List *lir) {
- }
-
- void LIR_Assembler::atomic_op(LIR_Code code, LIR_Opr src, LIR_Opr data, LIR_Opr dest, LIR_Opr tmp_op) {
-- Address addr = as_Address(src->as_address_ptr(), noreg);
-+ Address addr = as_Address(src->as_address_ptr(), as_reg(tmp_op));
- BasicType type = src->type();
- bool is_oop = type == T_OBJECT || type == T_ARRAY;
-
---
-2.19.0
-
diff --git a/8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch b/8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch
deleted file mode 100644
index 2c65f8243d8406b2c03da315d0ba72189bd4aa9e..0000000000000000000000000000000000000000
--- a/8203481-Incorrect-constraint-for-unextended_sp-in-frame-safe_for_sender.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
-index 65a441240..1e534d3da 100644
---- a/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
-+++ b/hotspot/src/cpu/aarch64/vm/frame_aarch64.cpp
-@@ -71,10 +71,20 @@ bool frame::safe_for_sender(JavaThread *thread) {
- return false;
- }
-
-- // unextended sp must be within the stack and above or equal sp
-- bool unextended_sp_safe = (unextended_sp < thread->stack_base()) &&
-- (unextended_sp >= sp);
-+ // When we are running interpreted code the machine stack pointer, SP, is
-+ // set low enough so that the Java expression stack can grow and shrink
-+ // without ever exceeding the machine stack bounds. So, ESP >= SP.
-
-+ // When we call out of an interpreted method, SP is incremented so that
-+ // the space between SP and ESP is removed. The SP saved in the callee's
-+ // frame is the SP *before* this increment. So, when we walk a stack of
-+ // interpreter frames the sender's SP saved in a frame might be less than
-+ // the SP at the point of call.
-+
-+ // So unextended sp must be within the stack but we need not to check
-+ // that unextended sp >= sp
-+
-+ bool unextended_sp_safe = (unextended_sp < thread->stack_base());
- if (!unextended_sp_safe) {
- return false;
- }
diff --git a/8203699-java-lang-invoke-SpecialInte.patch b/8203699-java-lang-invoke-SpecialInte.patch
deleted file mode 100644
index 35439d663323adfdc6c38172e79fd62aac44d81e..0000000000000000000000000000000000000000
--- a/8203699-java-lang-invoke-SpecialInte.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f9f94ca5422ae79bf4ed90f41b7698febc6bed24 Mon Sep 17 00:00:00 2001
-Date: Fri, 12 Jul 2019 15:26:27 +0000
-Subject: [PATCH] Backport of JDK-8203699: java/lang/invoke/SpecialInterfaceCall fails with SIGILL on aarch64
-
-summary: Get super_klass value into r0 to make check in VerifyMethodHandles success
-LLT: jdk/test/java/lang/invoke/lookup/TestDefenderMethodLookup.java
-Bug url: https://bugs.openjdk.java.net/browse/JDK-8203699
-
----
- .../src/cpu/aarch64/vm/macroAssembler_aarch64.cpp | 6 +-
- 1 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-index 42b732f37a..4659d628db 100644
---- a/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-+++ b/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
-@@ -1208,7 +1208,6 @@ void MacroAssembler::check_klass_subtype_slow_path(Register sub_klass,
- assert(sub_klass != r0, "killed reg"); // killed by mov(r0, super)
- assert(sub_klass != r2, "killed reg"); // killed by lea(r2, &pst_counter)
-
-- // Get super_klass value into r0 (even if it was in r5 or r2).
- RegSet pushed_registers;
- if (!IS_A_TEMP(r2)) pushed_registers += r2;
- if (!IS_A_TEMP(r5)) pushed_registers += r5;
-@@ -1219,6 +1218,11 @@ void MacroAssembler::check_klass_subtype_slow_path(Register sub_klass,
-
- push(pushed_registers, sp);
-
-+ // Get super_klass value into r0 (even if it was in r5 or r2)
-+ if (super_klass != r0) {
-+ mov(r0, super_klass);
-+ }
-+
- #ifndef PRODUCT
- mov(rscratch2, (address)&SharedRuntime::_partial_subtype_ctr);
- Address pst_counter_addr(rscratch2);
-diff --git a/jdk/test/java/lang/invoke/lookup/TestDefenderMethodLookup.java b/jdk/test/java/lang/invoke/lookup/TestDefenderMethodLookup.java
---
-2.12.3
-
diff --git a/8205921-Optimizing-best-of-2-work-stealing-queue-selection.patch b/8205921-Optimizing-best-of-2-work-stealing-queue-selection.patch
index 0e6ceb821059dd3915f578b48190e6060f2f87c4..597588bbb75d0e44af853884ba37a691c5f290d8 100644
--- a/8205921-Optimizing-best-of-2-work-stealing-queue-selection.patch
+++ b/8205921-Optimizing-best-of-2-work-stealing-queue-selection.patch
@@ -174,9 +174,9 @@ index 28dd5aad..271b33a5 100644
if (_cm->verbose_medium()) {
gclog_or_tty->print_cr("[%u] stolen " PTR_FORMAT " successfully",
_worker_id, p2i((void*) obj));
-@@ -4605,7 +4605,7 @@ CMTask::CMTask(uint worker_id,
- : _g1h(G1CollectedHeap::heap()),
+@@ -4612,7 +4614,7 @@ CMTask::CMTask(uint worker_id,
_worker_id(worker_id), _cm(cm),
+ _objArray_processor(this),
_claimed(false),
- _nextMarkBitMap(NULL), _hash_seed(17),
+ _nextMarkBitMap(NULL),
diff --git a/Extend-CDS-to-support-app-class-metadata-sharing.patch b/Extend-CDS-to-support-app-class-metadata-sharing.patch
index a164e15ea4c6b8915a31fee41c6e48aea94c9c07..9c5484f76a8b2dd1ceedbfd0744a7a9644080672 100644
--- a/Extend-CDS-to-support-app-class-metadata-sharing.patch
+++ b/Extend-CDS-to-support-app-class-metadata-sharing.patch
@@ -68,15 +68,15 @@ index 5c6b094..61140d3 100644
unsigned int d_hash = dictionary()->compute_hash(name, loader_data);
int d_index = dictionary()->hash_to_index(d_hash);
unsigned int p_hash = placeholders()->compute_hash(name, loader_data);
-@@ -1072,6 +1084,19 @@ Klass* SystemDictionary::parse_stream(Symbol* class_name,
+@@ -1074,6 +1086,19 @@ Klass* SystemDictionary::parse_stream(Symbol* class_name,
return k();
}
-
+
+static char* convert_into_package_name(char* name) {
+ char* index = strrchr(name, '/');
+ if (index == NULL) {
+ return NULL;
-+ } else {
++ } else {
+ *index = '\0'; // chop to just the package name
+ while ((index = strchr(name, '/')) != NULL) {
+ *index = '.'; // replace '/' with '.' in package name
@@ -85,26 +85,25 @@ index 5c6b094..61140d3 100644
+ }
+}
+
- // Add a klass to the system from a stream (called by jni_DefineClass and
- // JVM_DefineClass).
- // Note: class_name can be NULL. In that case we do not know the name of
-@@ -1125,12 +1150,10 @@ Klass* SystemDictionary::resolve_from_stream(Symbol* class_name,
- // JVM_DefineClass or jni_DefineClass unless you're the bootclassloader
- ResourceMark rm(THREAD);
- char* name = parsed_name->as_C_string();
-- char* index = strrchr(name, '/');
-- assert(index != NULL, "must be");
-- *index = '\0'; // chop to just the package name
-- while ((index = strchr(name, '/')) != NULL) {
-- *index = '.'; // replace '/' with '.' in package name
-- }
+ static bool is_prohibited_package_slow(Symbol* class_name) {
+ // Caller has ResourceMark
+ int length;
+@@ -1147,12 +1172,9 @@ Klass* SystemDictionary::resolve_from_stream(Symbol* class_name,
+ // It is illegal to define classes in the "java." package from
+ // JVM_DefineClass or jni_DefineClass unless you're the bootclassloader
+ char* name = parsed_name->as_C_string();
+- char* index = strrchr(name, '/');
+- assert(index != NULL, "must be");
+- *index = '\0'; // chop to just the package name
+- while ((index = strchr(name, '/')) != NULL) {
+- *index = '.'; // replace '/' with '.' in package name
+- }
++ name = convert_into_package_name(name);
++ assert(name != NULL, "must be");
+
-+ name = convert_into_package_name(name);
-+ assert(name != NULL, "must be");
-+
- const char* fmt = "Prohibited package name: %s";
- size_t len = strlen(fmt) + strlen(name);
- char* message = NEW_RESOURCE_ARRAY(char, len);
+ const char* fmt = "Prohibited package name: %s";
+ size_t len = strlen(fmt) + strlen(name);
+ char* message = NEW_RESOURCE_ARRAY(char, len);
@@ -1217,12 +1240,62 @@ Klass* SystemDictionary::find_shared_class(Symbol* class_name) {
instanceKlassHandle SystemDictionary::load_shared_class(
diff --git a/Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch b/Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch
deleted file mode 100644
index 346b37a610214024ea6952b60a510cca9c956fb2..0000000000000000000000000000000000000000
--- a/Test-SSLSocketSSLEngineTemplate.java-intermittent-fa.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 82b702f9680471ba548866aa17756f76d980ee0a Mon Sep 17 00:00:00 2001
-Date: Fri, 28 Aug 2020 09:13:33 +0800
-Subject: [PATCH] Test SSLSocketSSLEngineTemplate.java intermittent failed with
- "Data length error"
-
-Summary: