diff options
Diffstat (limited to 'source.local/l/openjdk/patches')
-rw-r--r-- | source.local/l/openjdk/patches/icedtea-2.3.3-refresh-6924259-string_offset.patch | 23 | ||||
-rw-r--r-- | source.local/l/openjdk/patches/icedtea_zero_buildfix.patch | 349 |
2 files changed, 349 insertions, 23 deletions
diff --git a/source.local/l/openjdk/patches/icedtea-2.3.3-refresh-6924259-string_offset.patch b/source.local/l/openjdk/patches/icedtea-2.3.3-refresh-6924259-string_offset.patch deleted file mode 100644 index b9e059f..0000000 --- a/source.local/l/openjdk/patches/icedtea-2.3.3-refresh-6924259-string_offset.patch +++ /dev/null @@ -1,23 +0,0 @@ -Index: icedtea-2.3.3/patches/hotspot/zero/6924259-string_offset.patch -=================================================================== ---- icedtea-2.3.3.orig/patches/hotspot/zero/6924259-string_offset.patch 2012-10-17 10:20:09.779948816 +0200 -+++ icedtea-2.3.3/patches/hotspot/zero/6924259-string_offset.patch 2012-10-19 14:56:22.265958143 +0200 -@@ -378,7 +378,7 @@ - diff --git a/src/share/vm/memory/dump.cpp b/src/share/vm/memory/dump.cpp - --- openjdk/hotspot/src/share/vm/memory/dump.cpp - +++ openjdk/hotspot/src/share/vm/memory/dump.cpp --@@ -78,8 +78,8 @@ -+@@ -78,8 +78,8 @@ public: - void do_oop(oop* p) { - if (p != NULL) { - oop obj = *p; -@@ -386,7 +386,7 @@ - - - + if (obj->klass() == SystemDictionary::String_klass() && - + java_lang_String::has_hash_field()) { -- int hash = java_lang_String::hash_string(obj); -+ int hash = java_lang_String::to_hash(obj); - obj->int_field_put(hash_offset, hash); - } - diff --git a/src/share/vm/opto/graphKit.cpp b/src/share/vm/opto/graphKit.cpp - diff --git a/source.local/l/openjdk/patches/icedtea_zero_buildfix.patch b/source.local/l/openjdk/patches/icedtea_zero_buildfix.patch new file mode 100644 index 0000000..902e0cc --- /dev/null +++ b/source.local/l/openjdk/patches/icedtea_zero_buildfix.patch @@ -0,0 +1,349 @@ + +# HG changeset patch +# User Andrew John Hughes <gnu_andrew@member.fsf.org> +# Date 1358298469 0 +# Node ID 5fc3319dea01730bb3fdc1cd1b156f37e153553f +# Parent fa200daee35457cb507ab8bf4b55cd3b3535e0b8 +Fix application of 6924259 to Zero's HotSpot, which was broken by addition of 7158800 in 2.1.3. + +2013-01-16 Andrew John Hughes <gnu.andrew@member.fsf.org> + + * patches/hotspot/zero/6924259-string_offset.patch: + Fix patch to apply against HotSpot from 2.1.3. + +diff -r fa200daee354 -r 5fc3319dea01 ChangeLog +--- a/ChangeLog Tue Jan 15 09:43:14 2013 +0000 ++++ b/ChangeLog Wed Jan 16 01:07:49 2013 +0000 +@@ -1,3 +1,8 @@ ++2013-01-16 Andrew John Hughes <gnu.andrew@member.fsf.org> ++ ++ * patches/hotspot/zero/6924259-string_offset.patch: ++ Fix patch to apply against HotSpot from 2.1.3. ++ + 2013-01-15 Andrew John Hughes <gnu.andrew@member.fsf.org> + + * NEWS: Mention PaX bug fix from Gentoo, +diff -r fa200daee354 -r 5fc3319dea01 patches/hotspot/zero/6924259-string_offset.patch +--- a/patches/hotspot/zero/6924259-string_offset.patch Tue Jan 15 09:43:14 2013 +0000 ++++ b/patches/hotspot/zero/6924259-string_offset.patch Wed Jan 16 01:07:49 2013 +0000 +@@ -1,15 +1,6 @@ +-# HG changeset patch +-# User kvn +-# Date 1337013360 25200 +-# Node ID 3facbb14e873f14af743e05139e6e48b5890ffcc +-# Parent ea3152ff2a498749bf5d889b247902f5d02915be +-6924259: Remove String.count/String.offset +-Summary: Allow a version of String class that doesn't have count and offset fields. +-Reviewed-by: never, coleenp +- +-diff --git a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +---- openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +-+++ openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ++diff -Nru openjdk.orig/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ++--- openjdk.orig/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp 2013-01-16 00:42:59.059088003 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -99,9 +90,9 @@ + + __ lduh(base0, limit, chr0); + __ bind(Lloop); +-diff --git a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +---- openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +-+++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ++diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ++--- openjdk.orig/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2013-01-16 00:41:43.257866830 +0000 +++++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2013-01-16 00:42:59.059088003 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -109,7 +100,7 @@ + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +-@@ -505,19 +505,28 @@ ++@@ -506,19 +506,28 @@ + + // Get addresses of first characters from both Strings + __ load_heap_oop(rsi, Address(rax, java_lang_String::value_offset_in_bytes())); +@@ -145,9 +136,9 @@ + __ mov (rcx, rbx); + __ subptr(rbx, rax); // subtract lengths + __ push (rbx); // result +-diff --git a/src/share/vm/classfile/javaClasses.cpp b/src/share/vm/classfile/javaClasses.cpp +---- openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp +-+++ openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.cpp openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp ++--- openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.cpp 2013-01-16 00:41:43.273867087 +0000 +++++ openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp 2013-01-16 00:42:59.071088195 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -155,7 +146,7 @@ + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +-@@ -143,7 +143,27 @@ ++@@ -144,7 +144,27 @@ + } + + +@@ -224,9 +215,9 @@ + + // java.lang.Class + +-diff --git a/src/share/vm/classfile/javaClasses.hpp b/src/share/vm/classfile/javaClasses.hpp +---- openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp +-+++ openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.hpp openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp ++--- openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.hpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp 2013-01-16 00:42:59.071088195 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -349,10 +340,10 @@ + } + static int utf8_length(oop java_string); + +-diff --git a/src/share/vm/classfile/systemDictionary.cpp b/src/share/vm/classfile/systemDictionary.cpp +---- openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp +-+++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp +-@@ -1971,6 +1971,9 @@ ++diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp ++--- openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp 2013-01-16 00:42:59.075088258 +0000 ++@@ -1953,6 +1953,9 @@ + // first do Object, String, Class + initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK); + +@@ -362,10 +353,10 @@ + java_lang_Class::compute_offsets(); + + // Fixup mirrors for classes loaded before java.lang.Class. +-diff --git a/src/share/vm/classfile/vmSymbols.hpp b/src/share/vm/classfile/vmSymbols.hpp +---- openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp +-+++ openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp +-@@ -339,6 +339,9 @@ ++diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/vmSymbols.hpp openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp ++--- openjdk.orig/hotspot/src/share/vm/classfile/vmSymbols.hpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp 2013-01-16 00:42:59.083088388 +0000 ++@@ -337,6 +337,9 @@ + template(park_event_name, "nativeParkEventPointer") \ + template(cache_field_name, "cache") \ + template(value_name, "value") \ +@@ -375,9 +366,9 @@ + template(frontCacheEnabled_name, "frontCacheEnabled") \ + template(stringCacheEnabled_name, "stringCacheEnabled") \ + template(numberOfLeadingZeros_name, "numberOfLeadingZeros") \ +-diff --git a/src/share/vm/memory/dump.cpp b/src/share/vm/memory/dump.cpp +---- openjdk/hotspot/src/share/vm/memory/dump.cpp +-+++ openjdk/hotspot/src/share/vm/memory/dump.cpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/memory/dump.cpp openjdk/hotspot/src/share/vm/memory/dump.cpp ++--- openjdk.orig/hotspot/src/share/vm/memory/dump.cpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/memory/dump.cpp 2013-01-16 00:43:46.135846474 +0000 + @@ -78,8 +78,8 @@ + void do_oop(oop* p) { + if (p != NULL) { +@@ -386,12 +377,12 @@ + - + + if (obj->klass() == SystemDictionary::String_klass() && + + java_lang_String::has_hash_field()) { +- int hash = java_lang_String::hash_string(obj); ++ int hash = java_lang_String::to_hash(obj); + obj->int_field_put(hash_offset, hash); + } +-diff --git a/src/share/vm/opto/graphKit.cpp b/src/share/vm/opto/graphKit.cpp +---- openjdk/hotspot/src/share/vm/opto/graphKit.cpp +-+++ openjdk/hotspot/src/share/vm/opto/graphKit.cpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/opto/graphKit.cpp openjdk/hotspot/src/share/vm/opto/graphKit.cpp ++--- openjdk.orig/hotspot/src/share/vm/opto/graphKit.cpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/opto/graphKit.cpp 2013-01-16 00:42:59.091088517 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -399,7 +390,7 @@ + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +-@@ -3748,3 +3748,81 @@ ++@@ -3730,3 +3730,81 @@ + final_sync(ideal); + } + #undef __ +@@ -481,9 +472,9 @@ + + store_to_memory(ctrl, basic_plus_adr(str, count_offset), + + value, T_INT, count_field_idx); + +} +-diff --git a/src/share/vm/opto/graphKit.hpp b/src/share/vm/opto/graphKit.hpp +---- openjdk/hotspot/src/share/vm/opto/graphKit.hpp +-+++ openjdk/hotspot/src/share/vm/opto/graphKit.hpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/opto/graphKit.hpp openjdk/hotspot/src/share/vm/opto/graphKit.hpp ++--- openjdk.orig/hotspot/src/share/vm/opto/graphKit.hpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/opto/graphKit.hpp 2013-01-16 00:42:59.095088581 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -506,9 +497,9 @@ + // Handy for making control flow + IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) { + IfNode* iff = new (C, 2) IfNode(ctrl, tst, prob, cnt);// New IfNode's +-diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp +---- openjdk/hotspot/src/share/vm/opto/library_call.cpp +-+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp openjdk/hotspot/src/share/vm/opto/library_call.cpp ++--- openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/opto/library_call.cpp 2013-01-16 00:42:59.095088581 +0000 + @@ -147,7 +147,8 @@ + return generate_method_call(method_id, true, false); + } +@@ -519,7 +510,7 @@ + bool inline_string_compareTo(); + bool inline_string_indexOf(); + Node* string_indexOf(Node* string_object, ciTypeArray* target_array, jint offset, jint cache_i, jint md2_i); +-@@ -844,48 +845,45 @@ ++@@ -844,48 +845,76 @@ + + + //------------------------------make_string_method_node------------------------ +@@ -588,13 +579,18 @@ + result = new (C, 5) StrEqualsNode(control(), memory(TypeAryPtr::CHARS), + - str1_start, str2_start, cnt1); + + str1_start, str2_start, str1_len); +- break; +- default: +- ShouldNotReachHere(); +-@@ -898,15 +896,42 @@ +- return _gvn.transform(result); +- } +- +++ break; +++ default: +++ ShouldNotReachHere(); +++ return NULL; +++ } +++ +++ // All these intrinsics have checks. +++ C->set_has_split_ifs(true); // Has chance for split-if optimization +++ +++ return _gvn.transform(result); +++} +++ + +// Helper method for String intrinsic functions. This version is called + +// with str1 and str2 pointing to char[] nodes, with cnt1 and cnt2 pointing + +// to Int nodes containing the lenghts of str1 and str2. +@@ -614,20 +610,10 @@ + + case Op_StrEquals: + + result = new (C, 5) StrEqualsNode(control(), memory(TypeAryPtr::CHARS), + + str1_start, str2_start, cnt1); +-+ break; +-+ default: +-+ ShouldNotReachHere(); +-+ return NULL; +-+ } +-+ +-+ // All these intrinsics have checks. +-+ C->set_has_split_ifs(true); // Has chance for split-if optimization +-+ +-+ return _gvn.transform(result); +-+} +-+ +- //------------------------------inline_string_compareTo------------------------ +- bool LibraryCallKit::inline_string_compareTo() { ++ break; ++ default: ++ ShouldNotReachHere(); ++@@ -903,10 +932,6 @@ + + if (!Matcher::has_match_rule(Op_StrComp)) return false; + +@@ -690,9 +676,6 @@ + - // Get counts for string and argument + - Node* receiver_cnta = basic_plus_adr(receiver, receiver, count_offset); + - receiver_cnt = make_load(no_ctrl, receiver_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); +-- +-- Node* argument_cnta = basic_plus_adr(argument, argument, count_offset); +-- argument_cnt = make_load(no_ctrl, argument_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + + Node* no_ctrl = NULL; + + + + // Get start addr of receiver +@@ -707,7 +690,9 @@ + + Node* argument_val = load_String_value(no_ctrl, argument); + + Node* argument_offset = load_String_offset(no_ctrl, argument); + + Node* argument_start = array_element_address(argument_val, argument_offset, T_CHAR); +-+ ++ ++- Node* argument_cnta = basic_plus_adr(argument, argument, count_offset); ++- argument_cnt = make_load(no_ctrl, argument_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + + // Get length of argument + + Node* argument_cnt = load_String_length(no_ctrl, argument); + +@@ -718,16 +703,14 @@ + region->init_req(4, if_ne); + } + - } +-- ++ + - // Check for count == 0 is done by mach node StrEquals. +-- +++ // Check for count == 0 is done by assembler code for StrEquals. ++ + - if (!stopped()) { + - Node* equals = make_string_method_node(Op_StrEquals, receiver, receiver_cnt, argument, argument_cnt); + - phi->init_req(1, equals); + - region->init_req(1, control()); +-+ +-+ // Check for count == 0 is done by assembler code for StrEquals. +-+ + + if (!stopped()) { + + Node* equals = make_string_method_node(Op_StrEquals, receiver_start, receiver_cnt, argument_start, argument_cnt); + + phi->init_req(1, equals); +@@ -778,9 +761,6 @@ + - // Get counts for string and substr + - Node* source_cnta = basic_plus_adr(receiver, receiver, count_offset); + - Node* source_cnt = make_load(no_ctrl, source_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); +-- +-- Node* substr_cnta = basic_plus_adr(argument, argument, count_offset); +-- Node* substr_cnt = make_load(no_ctrl, substr_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + + // Get start addr of source string + + Node* source = load_String_value(no_ctrl, receiver); + + Node* source_offset = load_String_offset(no_ctrl, receiver); +@@ -793,7 +773,9 @@ + + Node* substr = load_String_value(no_ctrl, argument); + + Node* substr_offset = load_String_offset(no_ctrl, argument); + + Node* substr_start = array_element_address(substr, substr_offset, T_CHAR); +-+ ++ ++- Node* substr_cnta = basic_plus_adr(argument, argument, count_offset); ++- Node* substr_cnt = make_load(no_ctrl, substr_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + + // Get length of source string + + Node* substr_cnt = load_String_length(no_ctrl, argument); + +@@ -831,9 +813,9 @@ + // constant strings have no offset and count == length which + // simplifies the resulting code somewhat so lets optimize for that. + if (o != 0 || c != pat->length()) { +-diff --git a/src/share/vm/opto/stringopts.cpp b/src/share/vm/opto/stringopts.cpp +---- openjdk/hotspot/src/share/vm/opto/stringopts.cpp +-+++ openjdk/hotspot/src/share/vm/opto/stringopts.cpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/opto/stringopts.cpp openjdk/hotspot/src/share/vm/opto/stringopts.cpp ++--- openjdk.orig/hotspot/src/share/vm/opto/stringopts.cpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/opto/stringopts.cpp 2013-01-16 00:42:59.099088646 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. +@@ -912,9 +894,9 @@ + + // hook up the outgoing control and result + kit.replace_call(sc->end(), result); +-diff --git a/src/share/vm/opto/stringopts.hpp b/src/share/vm/opto/stringopts.hpp +---- openjdk/hotspot/src/share/vm/opto/stringopts.hpp +-+++ openjdk/hotspot/src/share/vm/opto/stringopts.hpp ++diff -Nru openjdk.orig/hotspot/src/share/vm/opto/stringopts.hpp openjdk/hotspot/src/share/vm/opto/stringopts.hpp ++--- openjdk.orig/hotspot/src/share/vm/opto/stringopts.hpp 2012-10-17 08:52:30.000000000 +0100 +++++ openjdk/hotspot/src/share/vm/opto/stringopts.hpp 2013-01-16 00:42:59.103088711 +0000 + @@ -1,5 +1,5 @@ + /* + - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + + |