From 22d9aa99afda9da45fcadef509d28d89124fc3f7 Mon Sep 17 00:00:00 2001 From: wulongyao Date: Wed, 30 Apr 2025 11:07:29 +0800 Subject: [PATCH 1/2] add update timezone patch --- ...716-tz-Update-Timezone-Data-to-2025b.patch | 241 ++++++++++++++++++ openjdk-21.spec | 11 +- 2 files changed, 251 insertions(+), 1 deletion(-) create mode 100644 8352716-tz-Update-Timezone-Data-to-2025b.patch diff --git a/8352716-tz-Update-Timezone-Data-to-2025b.patch b/8352716-tz-Update-Timezone-Data-to-2025b.patch new file mode 100644 index 0000000..06f702c --- /dev/null +++ b/8352716-tz-Update-Timezone-Data-to-2025b.patch @@ -0,0 +1,241 @@ +From ffbb19474b77e5892735ebaf0f6f734982f48ab7 Mon Sep 17 00:00:00 2001 +Date: Tue, 29 Apr 2025 14:23:11 +0800 +Subject: [PATCH] 8352716: (tz) Update Timezone Data to 2025b + +--- + src/java.base/share/data/tzdata/VERSION | 2 +- + src/java.base/share/data/tzdata/asia | 12 ++- + src/java.base/share/data/tzdata/northamerica | 9 ++ + src/java.base/share/data/tzdata/southamerica | 86 +++++++++++++++---- + src/java.base/share/data/tzdata/zone.tab | 3 +- + .../java/util/TimeZone/TimeZoneData/VERSION | 2 +- + 6 files changed, 94 insertions(+), 20 deletions(-) + +diff --git a/src/java.base/share/data/tzdata/VERSION b/src/java.base/share/data/tzdata/VERSION +index 9c056fac3..4bd54efbc 100644 +--- a/src/java.base/share/data/tzdata/VERSION ++++ b/src/java.base/share/data/tzdata/VERSION +@@ -21,4 +21,4 @@ + # or visit www.oracle.com if you need additional information or have any + # questions. + # +-tzdata2025a ++tzdata2025b +diff --git a/src/java.base/share/data/tzdata/asia b/src/java.base/share/data/tzdata/asia +index b0a6fa01d..55b13134f 100644 +--- a/src/java.base/share/data/tzdata/asia ++++ b/src/java.base/share/data/tzdata/asia +@@ -1523,6 +1523,16 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov + # (UIT No. 143 17.XI.1977) and not 23 September (UIT No. 141 13.IX.1977). + # UIT is the Operational Bulletin of International Telecommunication Union. + ++# From Roozbeh Pournader (2025-03-18): ++# ... the exact time of Iran's transition from +0400 to +0330 ... was Friday ++# 1357/8/19 AP=1978-11-10. Here's a newspaper clip from the Ettela'at ++# newspaper, dated 1357/8/14 AP=1978-11-05, translated from Persian ++# (at https://w.wiki/DUEY): ++# Following the government's decision about returning the official time ++# to the previous status, the spokesperson for the Ministry of Energy ++# announced today: At the hour 24 of Friday 19th of Aban (=1978-11-10), ++# the country's time will be pulled back half an hour. ++# + # From Roozbeh Pournader (2003-03-15): + # This is an English translation of what I just found (originally in Persian). + # The Gregorian dates in brackets are mine: +@@ -1650,7 +1660,7 @@ Rule Iran 2021 2022 - Sep 21 24:00 0 - + Zone Asia/Tehran 3:25:44 - LMT 1916 + 3:25:44 - TMT 1935 Jun 13 # Tehran Mean Time + 3:30 Iran %z 1977 Oct 20 24:00 +- 4:00 Iran %z 1979 ++ 4:00 Iran %z 1978 Nov 10 24:00 + 3:30 Iran %z + + +diff --git a/src/java.base/share/data/tzdata/northamerica b/src/java.base/share/data/tzdata/northamerica +index 0a54e63be..21f178ee8 100644 +--- a/src/java.base/share/data/tzdata/northamerica ++++ b/src/java.base/share/data/tzdata/northamerica +@@ -1634,6 +1634,15 @@ Zone America/Moncton -4:19:08 - LMT 1883 Dec 9 + # For more on Orillia, see: Daubs K. Bold attempt at daylight saving + # time became a comic failure in Orillia. Toronto Star 2017-07-08. + # https://www.thestar.com/news/insight/2017/07/08/bold-attempt-at-daylight-saving-time-became-a-comic-failure-in-orillia.html ++# From Paul Eggert (2025-03-20): ++# Also see the 1912-06-17 front page of The Evening Sunbeam, ++# reproduced in: Richardson M. "Daylight saving was a confusing ++# time in Orillia" in the 2025-03-15 Orillia Matters. Richardson writes, ++# "The first Sunday after the switch was made, [DST proponent and ++# Orillia mayor William Sword] Frost walked into church an hour late. ++# This became a symbol of the downfall of daylight saving in Orillia." ++# The mayor became known as "Daylight Bill". ++# https://www.orilliamatters.com/local-news/column-daylight-saving-was-a-confusing-time-in-orillia-10377529 + + # From Mark Brader (2010-03-06): + # +diff --git a/src/java.base/share/data/tzdata/southamerica b/src/java.base/share/data/tzdata/southamerica +index 0a5859600..ca3c33859 100644 +--- a/src/java.base/share/data/tzdata/southamerica ++++ b/src/java.base/share/data/tzdata/southamerica +@@ -1269,35 +1269,45 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 + # dates to 2014. + # DST End: last Saturday of April 2014 (Sun 27 Apr 2014 03:00 UTC) + # DST Start: first Saturday of September 2014 (Sun 07 Sep 2014 04:00 UTC) +-# http://www.diariooficial.interior.gob.cl//media/2014/02/19/do-20140219.pdf ++# From Tim Parenti (2025-03-22): ++# Decreto 307 of 2014 of the Ministry of the Interior and Public Security, ++# promulgated 2014-01-30 and published 2014-02-19: ++# https://www.diariooficial.interior.gob.cl/media/2014/02/19/do-20140219.pdf#page=1 ++# https://www.bcn.cl/leychile/navegar?idNorma=1059557 + + # From Eduardo Romero Urra (2015-03-03): + # Today has been published officially that Chile will use the DST time + # permanently until March 25 of 2017 +-# http://www.diariooficial.interior.gob.cl/media/2015/03/03/1-large.jpg +-# +-# From Paul Eggert (2015-03-03): +-# For now, assume that the extension will persist indefinitely. ++# From Tim Parenti (2025-03-22): ++# Decreto 106 of 2015 of the Ministry of the Interior and Public Security, ++# promulgated 2015-01-27 and published 2015-03-03: ++# https://www.diariooficial.interior.gob.cl/media/2015/03/03/do-20150303.pdf#page=1 ++# https://www.bcn.cl/leychile/navegar?idNorma=1075157 + + # From Juan Correa (2016-03-18): +-# The decree regarding DST has been published in today's Official Gazette: +-# http://www.diariooficial.interior.gob.cl/versiones-anteriores/do/20160318/ +-# http://www.leychile.cl/Navegar?idNorma=1088502 ++# The decree regarding DST has been published in today's Official Gazette... + # It does consider the second Saturday of May and August as the dates + # for the transition; and it lists DST dates until 2019, but I think + # this scheme will stick. +-# + # From Paul Eggert (2016-03-18): +-# For now, assume the pattern holds for the indefinite future. + # The decree says transitions occur at 24:00; in practice this appears + # to mean 24:00 mainland time, not 24:00 local time, so that Easter + # Island is always two hours behind the mainland. ++# From Tim Parenti (2025-03-22): ++# Decreto 253 of 2016 of the Ministry of the Interior and Public Security, ++# promulgated 2016-03-16 and published 2016-03-18. ++# https://www.diariooficial.interior.gob.cl/media/2016/03/18/do-20160318.pdf#page=1 ++# https://www.bcn.cl/leychile/navegar?idNorma=1088502 + + # From Juan Correa (2016-12-04): + # Magallanes region ... will keep DST (UTC -3) all year round.... + # http://www.soychile.cl/Santiago/Sociedad/2016/12/04/433428/Bachelet-firmo-el-decreto-para-establecer-un-horario-unico-para-la-Region-de-Magallanes.aspx +-# From Deborah Goldsmith (2017-01-19): +-# http://www.diariooficial.interior.gob.cl/publicaciones/2017/01/17/41660/01/1169626.pdf ++# From Tim Parenti (2025-03-22), via Deborah Goldsmith (2017-01-19): ++# Decreto 1820 of 2016 of the Ministry of the Interior and Public Security, ++# promulgated 2016-12-02 and published 2017-01-17: ++# https://www.diariooficial.interior.gob.cl/publicaciones/2017/01/17/41660/01/1169626.pdf ++# https://www.bcn.cl/leychile/Navegar?idNorma=1099217 ++# Model this as a change to standard offset effective 2016-12-04. + + # From Juan Correa (2018-08-13): + # As of moments ago, the Ministry of Energy in Chile has announced the new +@@ -1316,13 +1326,20 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 + # https://twitter.com/MinEnergia/status/1029009354001973248 + # "We will keep the new time policy unchanged for at least the next 4 years." + # So we extend the new rules on Saturdays at 24:00 mainland time indefinitely. +-# From Juan Correa (2019-02-04): +-# http://www.diariooficial.interior.gob.cl/publicaciones/2018/11/23/42212/01/1498738.pdf ++# From Tim Parenti (2025-03-22), via Juan Correa (2019-02-04): ++# Decreto 1286 of 2018 of the Ministry of the Interior and Public Security, ++# promulgated 2018-09-21 and published 2018-11-23: ++# https://www.diariooficial.interior.gob.cl/publicaciones/2018/11/23/42212/01/1498738.pdf ++# https://www.bcn.cl/leychile/Navegar?idNorma=1125760 + + # From Juan Correa (2022-04-02): + # I found there was a decree published last Thursday that will keep +-# Magallanes region to UTC -3 "indefinitely". The decree is available at ++# Magallanes region to UTC -3 "indefinitely". ++# From Tim Parenti (2025-03-22): ++# Decreto 143 of 2022 of the Ministry of the Interior and Public Security, ++# promulgated 2022-03-29 and published 2022-03-31: + # https://www.diariooficial.interior.gob.cl/publicaciones/2022/03/31/43217-B/01/2108910.pdf ++# https://www.bcn.cl/leychile/Navegar?idNorma=1174342 + + # From Juan Correa (2022-08-09): + # the Internal Affairs Ministry (Ministerio del Interior) informed DST +@@ -1331,13 +1348,36 @@ Zone America/Rio_Branco -4:31:12 - LMT 1914 + # will keep UTC -3 "indefinitely"... This is because on September 4th + # we will have a voting whether to approve a new Constitution. + # +-# From Eduardo Romero Urra (2022-08-17): ++# From Tim Parenti (2025-03-22), via Eduardo Romero Urra (2022-08-17): ++# Decreto 224 of 2022 of the Ministry of the Interior and Public Security, ++# promulgated 2022-07-14 and published 2022-08-13: + # https://www.diariooficial.interior.gob.cl/publicaciones/2022/08/13/43327/01/2172567.pdf ++# https://www.bcn.cl/leychile/navegar?idNorma=1179983 + # + # From Paul Eggert (2022-08-17): + # Although the presidential decree stops at fall 2026, assume that + # similar DST rules will continue thereafter. + ++# From Paul Eggert (2025-01-15): ++# Diario Regional Aysén's Sebastián Martel reports that 94% of Aysén ++# citizens polled in November favored changing the rules from ++# -04/-03-with-DST to -03 all year... ++# https://www.diarioregionalaysen.cl/noticia/actualidad/2024/12/presentan-decision-que-gano-la-votacion-sobre-el-cambio-del-huso-horario-en-aysen ++# ++# From Yonathan Dossow (2025-03-20): ++# [T]oday we have more confirmation of the change. [Aysén] region will keep ++# UTC-3 all year... ++# https://www.cnnchile.com/pais/region-de-aysen-mantendra-horario-de-verano-todo-el-ano_20250320/ ++# https://www.latercera.com/nacional/noticia/tras-consulta-ciudadana-region-de-aysen-mantendra-el-horario-de-verano-durante-todo-el-ano/ ++# https://x.com/min_interior/status/1902692504270672098 ++# ++# From Tim Parenti (2025-03-22), via Eduardo Romero Urra (2025-03-20): ++# Decreto 93 of 2025 of the Ministry of the Interior and Public Security, ++# promulgated 2025-03-11 and published 2025-03-20: ++# https://www.diariooficial.interior.gob.cl/publicaciones/2025/03/20/44104/01/2624263.pdf ++# https://www.bcn.cl/leychile/Navegar?idNorma=1211955 ++# Model this as a change to standard offset effective 2025-03-20. ++ + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S + Rule Chile 1927 1931 - Sep 1 0:00 1:00 - + Rule Chile 1928 1932 - Apr 1 0:00 0 - +@@ -1394,6 +1434,20 @@ Zone America/Santiago -4:42:45 - LMT 1890 + -5:00 1:00 %z 1947 Mar 31 24:00 + -5:00 - %z 1947 May 21 23:00 + -4:00 Chile %z ++Zone America/Coyhaique -4:48:16 - LMT 1890 ++ -4:42:45 - SMT 1910 Jan 10 ++ -5:00 - %z 1916 Jul 1 ++ -4:42:45 - SMT 1918 Sep 10 ++ -4:00 - %z 1919 Jul 1 ++ -4:42:45 - SMT 1927 Sep 1 ++ -5:00 Chile %z 1932 Sep 1 ++ -4:00 - %z 1942 Jun 1 ++ -5:00 - %z 1942 Aug 1 ++ -4:00 - %z 1946 Aug 28 24:00 ++ -5:00 1:00 %z 1947 Mar 31 24:00 ++ -5:00 - %z 1947 May 21 23:00 ++ -4:00 Chile %z 2025 Mar 20 ++ -3:00 - %z + Zone America/Punta_Arenas -4:43:40 - LMT 1890 + -4:42:45 - SMT 1910 Jan 10 + -5:00 - %z 1916 Jul 1 +diff --git a/src/java.base/share/data/tzdata/zone.tab b/src/java.base/share/data/tzdata/zone.tab +index e7a4868c3..c8fc60104 100644 +--- a/src/java.base/share/data/tzdata/zone.tab ++++ b/src/java.base/share/data/tzdata/zone.tab +@@ -162,7 +162,8 @@ CH +4723+00832 Europe/Zurich + CI +0519-00402 Africa/Abidjan + CK -2114-15946 Pacific/Rarotonga + CL -3327-07040 America/Santiago most of Chile +-CL -5309-07055 America/Punta_Arenas Region of Magallanes ++CL -4534-07204 America/Coyhaique Aysen Region ++CL -5309-07055 America/Punta_Arenas Magallanes Region + CL -2709-10926 Pacific/Easter Easter Island + CM +0403+00942 Africa/Douala + CN +3114+12128 Asia/Shanghai Beijing Time +diff --git a/test/jdk/java/util/TimeZone/TimeZoneData/VERSION b/test/jdk/java/util/TimeZone/TimeZoneData/VERSION +index 5159b3786..750d9fae2 100644 +--- a/test/jdk/java/util/TimeZone/TimeZoneData/VERSION ++++ b/test/jdk/java/util/TimeZone/TimeZoneData/VERSION +@@ -1 +1 @@ +-tzdata2025a ++tzdata2025b +-- + diff --git a/openjdk-21.spec b/openjdk-21.spec index 13fb71e..3198b95 100644 --- a/openjdk-21.spec +++ b/openjdk-21.spec @@ -899,7 +899,7 @@ Name: java-21-%{origin} Version: %{newjavaver}.%{buildver} # This package needs `.rolling` as part of Release so as to not conflict on install with # java-X-openjdk. I.e. when latest rolling release is also an LTS release packaged as -Release: 0 +Release: 2 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages @@ -1030,6 +1030,7 @@ Patch86: huawei-Add-KAE-SM2.patch #21.0.7 Patch87: huawei-fix-build-fail-realpath.patch +Patch88: 8352716-tz-Update-Timezone-Data-to-2025b.patch ############################################ # # LoongArch64 specific patches @@ -1329,6 +1330,7 @@ pushd %{top_level_dir_name} %patch85 -p1 %patch86 -p1 %patch87 -p1 +%patch88 -p1 popd # openjdk %endif @@ -1899,6 +1901,13 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect %changelog +* Wed Apr 30 2025 songliyang - 1:21.0.7.6-2 +- update LoongArch64 port to 21.0.7 +- fix changelog date error + +* Tue Apr 29 2025 wulongyao - 1:21.0.7.6-1 +- add 8352716-tz-Update-Timezone-Data-to-2025b.patch + * Thu Apr 17 2025 DXwangg - 1:21.0.7.6-0 - update to jdk21.0.7-ga - delete Backport-JDK-8328553-Get-rid-of-JApplet-in-test-jdk-.patch -- Gitee From 491168d5564cbcd3aa15f1600d29cbd2782b0587 Mon Sep 17 00:00:00 2001 From: songliyang Date: Wed, 30 Apr 2025 11:37:10 +0800 Subject: [PATCH 2/2] update LoongArch64 port to 21.0.7 --- LoongArch64-support.patch | 539 +++++++++++++++++++++++++++++++++++--- openjdk-21.spec | 2 +- 2 files changed, 501 insertions(+), 40 deletions(-) diff --git a/LoongArch64-support.patch b/LoongArch64-support.patch index 4f8b7a6..8b5d303 100644 --- a/LoongArch64-support.patch +++ b/LoongArch64-support.patch @@ -1,8 +1,483 @@ -commit c35d5dd5296952bdcc213ea4e5768085a8d9e35b -Author: panxuefeng -Date: Tue Feb 11 20:20:18 2025 +0800 +From 790b520135eeeb11a6269bb16402d3160998363f Mon Sep 17 00:00:00 2001 +From: songliyang +Date: Wed, 30 Apr 2025 11:20:52 +0800 +Subject: [PATCH] LoongArch64 support - LoongArch Support +--- + make/autoconf/jvm-features.m4 | 18 +- + make/autoconf/platform.m4 | 17 + + .../abstractInterpreter_loongarch.cpp | 155 + + .../cpu/loongarch/assembler_loongarch.cpp | 820 + + .../cpu/loongarch/assembler_loongarch.hpp | 3213 ++++ + .../loongarch/assembler_loongarch.inline.hpp | 33 + + src/hotspot/cpu/loongarch/bytes_loongarch.hpp | 64 + + .../loongarch/c1_CodeStubs_loongarch_64.cpp | 338 + + .../cpu/loongarch/c1_Defs_loongarch.hpp | 88 + + .../loongarch/c1_FpuStackSim_loongarch.hpp | 32 + + .../loongarch/c1_FpuStackSim_loongarch_64.cpp | 31 + + .../cpu/loongarch/c1_FrameMap_loongarch.hpp | 143 + + .../loongarch/c1_FrameMap_loongarch_64.cpp | 345 + + .../loongarch/c1_LIRAssembler_loongarch.hpp | 84 + + .../c1_LIRAssembler_loongarch_64.cpp | 3383 ++++ + .../c1_LIRGenerator_loongarch_64.cpp | 1393 ++ + .../cpu/loongarch/c1_LIR_loongarch_64.cpp | 57 + + .../cpu/loongarch/c1_LinearScan_loongarch.hpp | 70 + + .../loongarch/c1_LinearScan_loongarch_64.cpp | 33 + + .../loongarch/c1_MacroAssembler_loongarch.hpp | 111 + + .../c1_MacroAssembler_loongarch_64.cpp | 350 + + .../loongarch/c1_Runtime1_loongarch_64.cpp | 1049 + + .../cpu/loongarch/c1_globals_loongarch.hpp | 64 + + .../cpu/loongarch/c2_CodeStubs_loongarch.cpp | 91 + + .../loongarch/c2_MacroAssembler_loongarch.cpp | 1903 ++ + .../loongarch/c2_MacroAssembler_loongarch.hpp | 141 + + .../cpu/loongarch/c2_globals_loongarch.hpp | 85 + + .../cpu/loongarch/c2_init_loongarch.cpp | 37 + + .../cpu/loongarch/codeBuffer_loongarch.cpp | 32 + + .../cpu/loongarch/codeBuffer_loongarch.hpp | 37 + + .../cpu/loongarch/compiledIC_loongarch.cpp | 138 + + .../loongarch/continuationEntry_loongarch.hpp | 33 + + .../continuationEntry_loongarch.inline.hpp | 52 + + ...ontinuationFreezeThaw_loongarch.inline.hpp | 284 + + .../continuationHelper_loongarch.inline.hpp | 145 + + src/hotspot/cpu/loongarch/copy_loongarch.cpp | 147 + + src/hotspot/cpu/loongarch/copy_loongarch.hpp | 65 + + .../cpu/loongarch/disassembler_loongarch.hpp | 49 + + .../loongarch/downcallLinker_loongarch_64.cpp | 360 + + .../loongarch/foreignGlobals_loongarch.cpp | 195 + + .../loongarch/foreignGlobals_loongarch.hpp | 50 + + src/hotspot/cpu/loongarch/frame_loongarch.cpp | 629 + + src/hotspot/cpu/loongarch/frame_loongarch.hpp | 200 + + .../cpu/loongarch/frame_loongarch.inline.hpp | 472 + + .../gc/g1/g1BarrierSetAssembler_loongarch.cpp | 491 + + .../gc/g1/g1BarrierSetAssembler_loongarch.hpp | 72 + + .../loongarch/gc/g1/g1Globals_loongarch.hpp | 30 + + .../shared/barrierSetAssembler_loongarch.cpp | 453 + + .../shared/barrierSetAssembler_loongarch.hpp | 147 + + .../gc/shared/barrierSetNMethod_loongarch.cpp | 222 + + ...cardTableBarrierSetAssembler_loongarch.cpp | 117 + + ...cardTableBarrierSetAssembler_loongarch.hpp | 44 + + .../modRefBarrierSetAssembler_loongarch.cpp | 53 + + .../modRefBarrierSetAssembler_loongarch.hpp | 54 + + .../c1/shenandoahBarrierSetC1_loongarch.cpp | 130 + + ...henandoahBarrierSetAssembler_loongarch.cpp | 783 + + ...henandoahBarrierSetAssembler_loongarch.hpp | 88 + + .../gc/shenandoah/shenandoah_loongarch_64.ad | 232 + + .../gc/x/xBarrierSetAssembler_loongarch.cpp | 471 + + .../gc/x/xBarrierSetAssembler_loongarch.hpp | 105 + + .../cpu/loongarch/gc/x/xGlobals_loongarch.cpp | 211 + + .../cpu/loongarch/gc/x/xGlobals_loongarch.hpp | 34 + + .../cpu/loongarch/gc/x/x_loongarch_64.ad | 256 + + .../cpu/loongarch/gc/z/zAddress_loongarch.cpp | 109 + + .../cpu/loongarch/gc/z/zAddress_loongarch.hpp | 35 + + .../gc/z/zAddress_loongarch.inline.hpp | 38 + + .../gc/z/zBarrierSetAssembler_loongarch.cpp | 1226 ++ + .../gc/z/zBarrierSetAssembler_loongarch.hpp | 192 + + .../cpu/loongarch/gc/z/zGlobals_loongarch.hpp | 30 + + .../cpu/loongarch/gc/z/z_loongarch_64.ad | 250 + + .../loongarch/globalDefinitions_loongarch.hpp | 58 + + .../cpu/loongarch/globals_loongarch.hpp | 125 + + .../cpu/loongarch/icBuffer_loongarch.cpp | 82 + + .../cpu/loongarch/icache_loongarch.cpp | 42 + + .../cpu/loongarch/icache_loongarch.hpp | 41 + + .../cpu/loongarch/interp_masm_loongarch.hpp | 272 + + .../loongarch/interp_masm_loongarch_64.cpp | 1965 ++ + .../cpu/loongarch/interpreterRT_loongarch.hpp | 62 + + .../loongarch/interpreterRT_loongarch_64.cpp | 264 + + .../loongarch/javaFrameAnchor_loongarch.hpp | 86 + + .../jniFastGetField_loongarch_64.cpp | 179 + + .../cpu/loongarch/jniTypes_loongarch.hpp | 143 + + .../jvmciCodeInstaller_loongarch.cpp | 194 + + src/hotspot/cpu/loongarch/loongarch.ad | 25 + + src/hotspot/cpu/loongarch/loongarch_64.ad | 15888 ++++++++++++++++ + .../loongarch/macroAssembler_loongarch.cpp | 4242 +++++ + .../loongarch/macroAssembler_loongarch.hpp | 809 + + .../macroAssembler_loongarch.inline.hpp | 937 + + .../macroAssembler_loongarch_chacha.cpp | 86 + + .../macroAssembler_loongarch_trig.cpp | 1626 ++ + .../cpu/loongarch/matcher_loongarch.hpp | 181 + + .../cpu/loongarch/methodHandles_loongarch.cpp | 568 + + .../cpu/loongarch/methodHandles_loongarch.hpp | 65 + + .../cpu/loongarch/nativeInst_loongarch.cpp | 537 + + .../cpu/loongarch/nativeInst_loongarch.hpp | 595 + + .../cpu/loongarch/registerMap_loongarch.hpp | 59 + + .../cpu/loongarch/register_loongarch.cpp | 61 + + .../cpu/loongarch/register_loongarch.hpp | 479 + + .../cpu/loongarch/relocInfo_loongarch.cpp | 133 + + .../cpu/loongarch/relocInfo_loongarch.hpp | 44 + + .../loongarch/sharedRuntime_loongarch_64.cpp | 2979 +++ + .../smallRegisterMap_loongarch.inline.hpp | 88 + + ...stackChunkFrameStream_loongarch.inline.hpp | 142 + + .../stackChunkOop_loongarch.inline.hpp | 43 + + .../loongarch/stubGenerator_loongarch_64.cpp | 5721 ++++++ + .../cpu/loongarch/stubRoutines_loongarch.hpp | 118 + + .../loongarch/stubRoutines_loongarch_64.cpp | 196 + + ...templateInterpreterGenerator_loongarch.cpp | 2106 ++ + .../cpu/loongarch/templateTable_loongarch.hpp | 43 + + .../loongarch/templateTable_loongarch_64.cpp | 4007 ++++ + .../loongarch/upcallLinker_loongarch_64.cpp | 351 + + .../cpu/loongarch/vmStructs_loongarch.hpp | 61 + + .../cpu/loongarch/vm_version_loongarch.cpp | 511 + + .../cpu/loongarch/vm_version_loongarch.hpp | 308 + + src/hotspot/cpu/loongarch/vmreg_loongarch.cpp | 54 + + src/hotspot/cpu/loongarch/vmreg_loongarch.hpp | 58 + + .../cpu/loongarch/vmreg_loongarch.inline.hpp | 38 + + .../cpu/loongarch/vmstorage_loongarch.hpp | 87 + + .../loongarch/vtableStubs_loongarch_64.cpp | 312 + + src/hotspot/os/linux/os_linux.cpp | 54 +- + src/hotspot/os/linux/os_linux.hpp | 8 + + .../os/linux/systemMemoryBarrier_linux.cpp | 8 + + .../assembler_linux_loongarch.cpp | 24 + + .../atomic_linux_loongarch.hpp | 499 + + .../copy_linux_loongarch.inline.hpp | 145 + + .../gc/x/xSyscall_linux_loongarch.hpp | 41 + + .../gc/z/zSyscall_linux_loongarch.hpp | 41 + + .../globals_linux_loongarch.hpp | 43 + + .../javaThread_linux_loongarch.cpp | 105 + + .../javaThread_linux_loongarch.hpp | 66 + + .../os_cpu/linux_loongarch/linux_loongarch.s | 25 + + .../orderAccess_linux_loongarch.hpp | 50 + + .../linux_loongarch/os_linux_loongarch.cpp | 474 + + .../os_linux_loongarch.inline.hpp | 29 + + .../prefetch_linux_loongarch.inline.hpp | 56 + + .../safefetch_linux_loongarch64.S | 56 + + .../vmStructs_linux_loongarch.hpp | 55 + + .../vm_version_linux_loongarch.cpp | 95 + + src/hotspot/share/adlc/formssel.cpp | 7 + + src/hotspot/share/c1/c1_Compiler.cpp | 8 +- + src/hotspot/share/c1/c1_LIR.cpp | 21 +- + src/hotspot/share/c1/c1_LIR.hpp | 25 +- + src/hotspot/share/c1/c1_LinearScan.cpp | 30 +- + src/hotspot/share/code/vtableStubs.cpp | 10 + + src/hotspot/share/gc/g1/g1Arguments.cpp | 20 + + .../gc/g1/g1ParScanThreadState.inline.hpp | 9 + + .../share/gc/parallel/parallelArguments.cpp | 12 + + .../share/gc/shared/barrierSetNMethod.cpp | 8 +- + .../share/gc/shared/c2/barrierSetC2.cpp | 15 + + .../gc/shenandoah/shenandoahArguments.cpp | 8 +- + src/hotspot/share/gc/z/c1/zBarrierSetC1.cpp | 17 + + .../share/gc/z/zStoreBarrierBuffer.hpp | 10 +- + .../share/interpreter/interpreterRuntime.cpp | 8 +- + .../share/interpreter/interpreterRuntime.hpp | 8 +- + .../templateInterpreterGenerator.hpp | 10 +- + .../share/jfr/utilities/jfrBigEndian.hpp | 8 +- + src/hotspot/share/jvmci/vmStructs_jvmci.cpp | 17 + + src/hotspot/share/memory/metaspace.cpp | 15 +- + .../share/oops/stackChunkOop.inline.hpp | 10 +- + src/hotspot/share/opto/classes.hpp | 7 + + src/hotspot/share/opto/compile.cpp | 7 + + src/hotspot/share/opto/memnode.cpp | 7 + + src/hotspot/share/opto/memnode.hpp | 14 + + src/hotspot/share/opto/output.cpp | 22 + + src/hotspot/share/runtime/arguments.cpp | 10 +- + src/hotspot/share/runtime/continuation.cpp | 8 +- + .../share/runtime/continuationFreezeThaw.cpp | 16 +- + .../share/runtime/javaThread.inline.hpp | 10 +- + src/hotspot/share/runtime/objectMonitor.cpp | 10 + + src/hotspot/share/runtime/os.cpp | 9 +- + src/hotspot/share/runtime/sharedRuntime.cpp | 8 +- + .../share/runtime/sharedRuntimeTrig.cpp | 16 + + src/hotspot/share/runtime/synchronizer.cpp | 8 +- + src/hotspot/share/runtime/vmStructs.cpp | 7 + + src/hotspot/share/utilities/macros.hpp | 18 + + .../classes/jdk/internal/foreign/CABI.java | 13 +- + .../internal/foreign/abi/AbstractLinker.java | 8 + + .../jdk/internal/foreign/abi/SharedUtils.java | 8 + + .../loongarch64/LoongArch64Architecture.java | 179 + + .../linux/LinuxLoongArch64CallArranger.java | 472 + + .../linux/LinuxLoongArch64Linker.java | 65 + + .../abi/loongarch64/linux/TypeClass.java | 217 + + .../jdk/internal/util/Architecture.java | 8 + + .../internal/util/PlatformProps.java.template | 8 + + .../native/libsaproc/LinuxDebuggerLocal.cpp | 28 +- + .../linux/native/libsaproc/libproc.h | 9 +- + .../linux/native/libsaproc/ps_proc.c | 8 +- + .../classes/sun/jvm/hotspot/HotSpotAgent.java | 9 + + .../MachineDescriptionLOONGARCH64.java | 41 + + .../debugger/linux/LinuxCDebugger.java | 17 +- + .../linux/LinuxThreadContextFactory.java | 11 +- + .../loongarch64/LinuxLOONGARCH64CFrame.java | 92 + + .../LinuxLOONGARCH64ThreadContext.java | 47 + + .../loongarch64/LOONGARCH64ThreadContext.java | 128 + + .../hotspot/debugger/posix/elf/ELFHeader.java | 8 + + .../debugger/remote/RemoteDebuggerClient.java | 11 + + .../loongarch64/RemoteLOONGARCH64Thread.java | 54 + + .../RemoteLOONGARCH64ThreadContext.java | 51 + + .../RemoteLOONGARCH64ThreadFactory.java | 45 + + .../sun/jvm/hotspot/runtime/Threads.java | 9 + + .../LinuxLOONGARCH64JavaThreadPDAccess.java | 139 + + .../LOONGARCH64CurrentFrameGuess.java | 250 + + .../runtime/loongarch64/LOONGARCH64Frame.java | 540 + + .../LOONGARCH64JavaCallWrapper.java | 59 + + .../loongarch64/LOONGARCH64RegisterMap.java | 52 + + .../jvm/hotspot/utilities/PlatformInfo.java | 12 +- + ...LoongArch64HotSpotJVMCIBackendFactory.java | 142 + + .../LoongArch64HotSpotRegisterConfig.java | 297 + + .../LoongArch64HotSpotVMConfig.java | 79 + + .../ci/hotspot/loongarch64/package-info.java | 28 + + .../jdk/vm/ci/loongarch64/LoongArch64.java | 251 + + .../vm/ci/loongarch64/LoongArch64Kind.java | 163 + + .../jdk/vm/ci/loongarch64/package-info.java | 28 + + .../share/classes/module-info.java | 7 + + src/utils/hsdis/binutils/hsdis-binutils.c | 9 + + .../arguments/TestCodeEntryAlignment.java | 8 +- + .../arraycopy/stress/TestStressArrayCopy.java | 14 + + test/hotspot/jtreg/compiler/c2/TestBit.java | 8 +- + .../compiler/c2/irTests/CmpUWithZero.java | 8 +- + .../irTests/TestAutoVecCountingDownLoop.java | 8 +- + .../jtreg/compiler/c2/irTests/TestIRAbs.java | 8 +- + .../c2/irTests/TestVectorizationNotRun.java | 8 +- + .../irTests/TestVectorizeTypeConversion.java | 8 +- + .../irTests/TestVectorizeURShiftSubword.java | 8 +- + .../TestAESIntrinsicsOnSupportedConfig.java | 8 +- + .../TestAESIntrinsicsOnUnsupportedConfig.java | 8 +- + .../intrinsics/TestCompareUnsigned.java | 9 +- + .../intrinsics/TestDoubleIsFinite.java | 8 +- + .../intrinsics/TestDoubleIsInfinite.java | 8 +- + .../intrinsics/TestFloatIsFinite.java | 8 +- + .../intrinsics/TestFloatIsInfinite.java | 8 +- + .../intrinsics/TestIntegerUnsignedDivMod.java | 8 +- + .../intrinsics/TestLongUnsignedDivMod.java | 8 +- + .../intrinsics/chacha/TestChaCha20.java | 12 + + .../float16/Binary16Conversion.java | 8 +- + .../float16/Binary16ConversionNaN.java | 8 +- + .../float16/TestAllFloat16ToFloat.java | 8 +- + .../float16/TestConstFloat16ToFloat.java | 8 +- + .../testcases/GenericTestCaseForOtherCPU.java | 13 +- + .../intrinsics/string/TestCountPositives.java | 12 +- + .../TestStringCompareToDifferentLength.java | 8 +- + .../vm/ci/code/test/CodeInstallationTest.java | 11 + + .../jdk/vm/ci/code/test/DataPatchTest.java | 11 +- + .../code/test/InterpreterFrameSizeTest.java | 11 +- + .../code/test/MaxOopMapStackOffsetTest.java | 11 +- + .../jdk/vm/ci/code/test/NativeCallTest.java | 11 +- + .../code/test/SimpleCodeInstallationTest.java | 11 +- + .../vm/ci/code/test/SimpleDebugInfoTest.java | 11 +- + .../code/test/VirtualObjectDebugInfoTest.java | 11 +- + .../loongarch64/LoongArch64TestAssembler.java | 568 + + .../compiler/lib/ir_framework/IRNode.java | 10 +- + .../loopopts/superword/ReductionPerf.java | 8 +- + .../TestRangeCheckHoistingScaledIV.java | 8 +- + .../runtime/TestConstantsInError.java | 14 +- + .../sharedstubs/SharedStubToInterpTest.java | 8 +- + .../sha/predicate/IntrinsicPredicates.java | 17 +- + .../compiler/vectorapi/TestVectorTest.java | 9 +- + .../VectorLogicalOpIdentityTest.java | 8 +- + .../vectorapi/VectorReverseBytesTest.java | 8 +- + .../vectorization/TestAutoVecIntMinMax.java | 8 +- + .../TestBufferVectorization.java | 8 +- + .../TestFloatConversionsVector.java | 8 +- + .../vectorization/TestPopulateIndex.java | 9 +- + .../vectorization/TestReverseBytes.java | 9 +- + .../vectorization/TestSignumVector.java | 8 +- + .../runner/ArrayIndexFillTest.java | 8 +- + .../runner/ArrayInvariantFillTest.java | 8 +- + .../runner/ArrayShiftOpTest.java | 8 +- + .../runner/BasicDoubleOpTest.java | 8 +- + .../runner/BasicFloatOpTest.java | 8 +- + .../vectorization/runner/BasicLongOpTest.java | 8 +- + .../runner/LoopArrayIndexComputeTest.java | 8 +- + .../runner/LoopReductionOpTest.java | 8 +- + .../compiler/TestLinkToNativeRBP.java | 8 +- + .../jtreg/loongson/25064/NUMAHelper.java | 100 + + .../loongson/25064/TestUseNUMADefault.java | 152 + + .../loongson/25064/TestUseNUMADisabled.java | 94 + + .../loongson/25064/TestUseNUMAEnabled.java | 165 + + .../jtreg/loongson/25443/Test25443.java | 58 + + .../jtreg/loongson/26733/Test26733.java | 570 + + .../jtreg/loongson/30358/MEMBARType.java | 38 + + .../jtreg/loongson/30358/TEST.properties | 25 + + .../jtreg/loongson/30358/TestLoadLoad.java | 129 + + .../30358/TestNewObjectWithFinal.java | 247 + + .../jtreg/loongson/30358/TestVolatile.java | 358 + + .../hotspot/jtreg/loongson/7432/Test7423.java | 61 + + .../ReservedStack/ReservedStackTest.java | 8 +- + .../jtreg/runtime/os/TestTracePageSizes.java | 8 +- + .../MyPackage/ASGCTBaseTest.java | 8 +- + .../sa/TestJhsdbJstackLineNumbers.java | 8 +- + .../ir_framework/tests/TestIRMatching.java | 8 +- + .../nsk/share/jdi/ArgumentHandler.java | 178 +- + .../TestLoongArch64CallArranger.java | 521 + + .../platform/PlatformLayouts.java | 59 + + .../ConcurrentHashMap/MapLoops.java | 8 +- + .../jdk/jfr/event/os/TestCPUInformation.java | 10 +- + .../nameservice/simple/DefaultCaching.java | 11 +- + ...stMutuallyExclusivePlatformPredicates.java | 8 +- + test/lib/jdk/test/lib/Platform.java | 10 + + .../org/openjdk/bench/loongarch/C2Memory.java | 67 + + .../bench/loongarch/MisAlignVector.java | 63 + + 301 files changed, 79758 insertions(+), 219 deletions(-) + create mode 100644 src/hotspot/cpu/loongarch/abstractInterpreter_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/assembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/assembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/assembler_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/bytes_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_CodeStubs_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_Defs_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_FpuStackSim_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_FpuStackSim_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_FrameMap_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_FrameMap_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_LIRAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_LIRAssembler_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_LIRGenerator_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_LIR_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_LinearScan_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_LinearScan_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_MacroAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c1_MacroAssembler_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_Runtime1_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/c1_globals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c2_CodeStubs_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/c2_MacroAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/c2_MacroAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c2_globals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/c2_init_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/codeBuffer_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/codeBuffer_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/compiledIC_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/continuationEntry_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/continuationEntry_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/continuationFreezeThaw_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/continuationHelper_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/copy_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/copy_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/disassembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/downcallLinker_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/foreignGlobals_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/foreignGlobals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/frame_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/frame_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/frame_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/g1/g1BarrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/g1/g1BarrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/g1/g1Globals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/barrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/barrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/barrierSetNMethod_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/cardTableBarrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/cardTableBarrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/modRefBarrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shared/modRefBarrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shenandoah/c1/shenandoahBarrierSetC1_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shenandoah/shenandoahBarrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shenandoah/shenandoahBarrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/shenandoah/shenandoah_loongarch_64.ad + create mode 100644 src/hotspot/cpu/loongarch/gc/x/xBarrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/x/xBarrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/x/xGlobals_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/x/xGlobals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/x/x_loongarch_64.ad + create mode 100644 src/hotspot/cpu/loongarch/gc/z/zAddress_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/z/zAddress_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/z/zAddress_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/z/zBarrierSetAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/gc/z/zBarrierSetAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/z/zGlobals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/gc/z/z_loongarch_64.ad + create mode 100644 src/hotspot/cpu/loongarch/globalDefinitions_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/globals_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/icBuffer_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/icache_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/icache_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/interp_masm_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/interp_masm_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/interpreterRT_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/interpreterRT_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/javaFrameAnchor_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/jniFastGetField_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/jniTypes_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/jvmciCodeInstaller_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/loongarch.ad + create mode 100644 src/hotspot/cpu/loongarch/loongarch_64.ad + create mode 100644 src/hotspot/cpu/loongarch/macroAssembler_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/macroAssembler_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/macroAssembler_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/macroAssembler_loongarch_chacha.cpp + create mode 100644 src/hotspot/cpu/loongarch/macroAssembler_loongarch_trig.cpp + create mode 100644 src/hotspot/cpu/loongarch/matcher_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/methodHandles_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/methodHandles_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/nativeInst_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/nativeInst_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/registerMap_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/register_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/register_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/relocInfo_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/relocInfo_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/sharedRuntime_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/smallRegisterMap_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/stackChunkFrameStream_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/stackChunkOop_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/stubGenerator_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/stubRoutines_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/stubRoutines_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/templateInterpreterGenerator_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/templateTable_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/templateTable_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/upcallLinker_loongarch_64.cpp + create mode 100644 src/hotspot/cpu/loongarch/vmStructs_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/vm_version_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/vm_version_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/vmreg_loongarch.cpp + create mode 100644 src/hotspot/cpu/loongarch/vmreg_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/vmreg_loongarch.inline.hpp + create mode 100644 src/hotspot/cpu/loongarch/vmstorage_loongarch.hpp + create mode 100644 src/hotspot/cpu/loongarch/vtableStubs_loongarch_64.cpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/assembler_linux_loongarch.cpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/atomic_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/copy_linux_loongarch.inline.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/gc/x/xSyscall_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/gc/z/zSyscall_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/globals_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/javaThread_linux_loongarch.cpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/javaThread_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/linux_loongarch.s + create mode 100644 src/hotspot/os_cpu/linux_loongarch/orderAccess_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/os_linux_loongarch.cpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/os_linux_loongarch.inline.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/prefetch_linux_loongarch.inline.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/safefetch_linux_loongarch64.S + create mode 100644 src/hotspot/os_cpu/linux_loongarch/vmStructs_linux_loongarch.hpp + create mode 100644 src/hotspot/os_cpu/linux_loongarch/vm_version_linux_loongarch.cpp + create mode 100644 src/java.base/share/classes/jdk/internal/foreign/abi/loongarch64/LoongArch64Architecture.java + create mode 100644 src/java.base/share/classes/jdk/internal/foreign/abi/loongarch64/linux/LinuxLoongArch64CallArranger.java + create mode 100644 src/java.base/share/classes/jdk/internal/foreign/abi/loongarch64/linux/LinuxLoongArch64Linker.java + create mode 100644 src/java.base/share/classes/jdk/internal/foreign/abi/loongarch64/linux/TypeClass.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionLOONGARCH64.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/loongarch64/LinuxLOONGARCH64CFrame.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/loongarch64/LinuxLOONGARCH64ThreadContext.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/loongarch64/LOONGARCH64ThreadContext.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/loongarch64/RemoteLOONGARCH64Thread.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/loongarch64/RemoteLOONGARCH64ThreadContext.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/loongarch64/RemoteLOONGARCH64ThreadFactory.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/linux_loongarch64/LinuxLOONGARCH64JavaThreadPDAccess.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/loongarch64/LOONGARCH64CurrentFrameGuess.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/loongarch64/LOONGARCH64Frame.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/loongarch64/LOONGARCH64JavaCallWrapper.java + create mode 100644 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/loongarch64/LOONGARCH64RegisterMap.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/loongarch64/LoongArch64HotSpotJVMCIBackendFactory.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/loongarch64/LoongArch64HotSpotRegisterConfig.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/loongarch64/LoongArch64HotSpotVMConfig.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/loongarch64/package-info.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/loongarch64/LoongArch64.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/loongarch64/LoongArch64Kind.java + create mode 100644 src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/loongarch64/package-info.java + create mode 100644 test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/loongarch64/LoongArch64TestAssembler.java + create mode 100644 test/hotspot/jtreg/loongson/25064/NUMAHelper.java + create mode 100644 test/hotspot/jtreg/loongson/25064/TestUseNUMADefault.java + create mode 100644 test/hotspot/jtreg/loongson/25064/TestUseNUMADisabled.java + create mode 100644 test/hotspot/jtreg/loongson/25064/TestUseNUMAEnabled.java + create mode 100644 test/hotspot/jtreg/loongson/25443/Test25443.java + create mode 100644 test/hotspot/jtreg/loongson/26733/Test26733.java + create mode 100644 test/hotspot/jtreg/loongson/30358/MEMBARType.java + create mode 100644 test/hotspot/jtreg/loongson/30358/TEST.properties + create mode 100644 test/hotspot/jtreg/loongson/30358/TestLoadLoad.java + create mode 100644 test/hotspot/jtreg/loongson/30358/TestNewObjectWithFinal.java + create mode 100644 test/hotspot/jtreg/loongson/30358/TestVolatile.java + create mode 100644 test/hotspot/jtreg/loongson/7432/Test7423.java + create mode 100644 test/jdk/java/foreign/callarranger/TestLoongArch64CallArranger.java + create mode 100644 test/micro/org/openjdk/bench/loongarch/C2Memory.java + create mode 100644 test/micro/org/openjdk/bench/loongarch/MisAlignVector.java diff --git a/make/autoconf/jvm-features.m4 b/make/autoconf/jvm-features.m4 index 288019848..c37c5c274 100644 @@ -70749,7 +71224,7 @@ index 000000000..ab1202183 + return icache_line_size; +} diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp -index 7cb862d7c..21093e523 100644 +index 5ebd57fb3..f74969e66 100644 --- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -23,6 +23,12 @@ @@ -70765,7 +71240,7 @@ index 7cb862d7c..21093e523 100644 // no precompiled headers #include "classfile/vmSymbols.hpp" #include "code/icBuffer.hpp" -@@ -2200,6 +2206,12 @@ bool os::Linux::query_process_memory_info(os::Linux::meminfo_t* info) { +@@ -2236,6 +2242,12 @@ bool os::Linux::query_process_memory_info(os::Linux::meminfo_t* info) { return false; } @@ -70778,7 +71253,7 @@ index 7cb862d7c..21093e523 100644 #ifdef __GLIBC__ // For Glibc, print a one-liner with the malloc tunables. // Most important and popular is MALLOC_ARENA_MAX, but we are -@@ -2416,7 +2428,7 @@ void os::print_memory_info(outputStream* st) { +@@ -2452,7 +2464,7 @@ void os::print_memory_info(outputStream* st) { // before "flags" so if we find a second "model name", then the // "flags" field is considered missing. static bool print_model_name_and_flags(outputStream* st, char* buf, size_t buflen) { @@ -70787,7 +71262,7 @@ index 7cb862d7c..21093e523 100644 // Other platforms have less repetitive cpuinfo files FILE *fp = os::fopen("/proc/cpuinfo", "r"); if (fp) { -@@ -2528,7 +2540,7 @@ void os::jfr_report_memory_info() { +@@ -2564,7 +2576,7 @@ void os::jfr_report_memory_info() { #endif // INCLUDE_JFR @@ -70796,7 +71271,7 @@ index 7cb862d7c..21093e523 100644 const char* search_string = "model name"; #elif defined(M68K) const char* search_string = "CPU"; -@@ -4531,6 +4543,44 @@ void os::Linux::numa_init() { +@@ -4567,6 +4579,44 @@ void os::Linux::numa_init() { // If there's only one node (they start from 0) or if the process // is bound explicitly to a single node using membind, disable NUMA UseNUMA = false; @@ -71994,10 +72469,10 @@ index 000000000..2d096943a +#endif // OS_CPU_LINUX_LOONGARCH_ORDERACCESS_LINUX_LOONGARCH_HPP diff --git a/src/hotspot/os_cpu/linux_loongarch/os_linux_loongarch.cpp b/src/hotspot/os_cpu/linux_loongarch/os_linux_loongarch.cpp new file mode 100644 -index 000000000..31bfcba8d +index 000000000..304ceb7b3 --- /dev/null +++ b/src/hotspot/os_cpu/linux_loongarch/os_linux_loongarch.cpp -@@ -0,0 +1,491 @@ +@@ -0,0 +1,474 @@ +/* + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023, Loongson Technology. All rights reserved. @@ -72458,23 +72933,6 @@ index 000000000..31bfcba8d + st->cr(); +} + -+void os::print_tos_pc(outputStream *st, const void *context) { -+ if (context == nullptr) return; -+ -+ const ucontext_t* uc = (const ucontext_t*)context; -+ -+ address sp = (address)os::Linux::ucontext_get_sp(uc); -+ print_tos(st, sp); -+ st->cr(); -+ -+ // Note: it may be unsafe to inspect memory near pc. For example, pc may -+ // point to garbage if entry point in an nmethod is corrupted. Leave -+ // this at the end, and hope for the best. -+ address pc = os::fetch_frame_from_context(uc).pc(); -+ print_instructions(st, pc); -+ st->cr(); -+} -+ +void os::setup_fpu() { + // no use for LA +} @@ -73964,7 +74422,7 @@ index ee0f754b8..e29e71641 100644 assert(owner_raw() != current, "invariant"); assert(_Responsible != current, "invariant"); diff --git a/src/hotspot/share/runtime/os.cpp b/src/hotspot/share/runtime/os.cpp -index cd0709a7b..0c40c2730 100644 +index 286a148ac..17c94339a 100644 --- a/src/hotspot/share/runtime/os.cpp +++ b/src/hotspot/share/runtime/os.cpp @@ -22,6 +22,12 @@ @@ -73980,7 +74438,7 @@ index cd0709a7b..0c40c2730 100644 #include "precompiled.hpp" #include "classfile/javaClasses.hpp" #include "classfile/moduleEntry.hpp" -@@ -1311,7 +1317,8 @@ bool os::is_first_C_frame(frame* fr) { +@@ -1331,7 +1337,8 @@ bool os::is_first_C_frame(frame* fr) { if ((uintptr_t)fr->sender_sp() == (uintptr_t)-1 || is_pointer_bad(fr->sender_sp())) return true; uintptr_t old_fp = (uintptr_t)fr->link_or_null(); @@ -79788,7 +80246,7 @@ index 000000000..4c7686845 + +} diff --git a/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java b/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java -index e9d84883f..f4cd7ec9d 100644 +index 8eb1af01d..151c422f9 100644 --- a/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java +++ b/test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java @@ -21,6 +21,12 @@ @@ -80237,10 +80695,10 @@ index bf6a10b85..b97c0461e 100644 * @run driver compiler.vectorization.TestSignumVector */ diff --git a/test/hotspot/jtreg/compiler/vectorization/runner/ArrayIndexFillTest.java b/test/hotspot/jtreg/compiler/vectorization/runner/ArrayIndexFillTest.java -index a4eca0fe8..de44f6052 100644 +index 5c9fc7d4f..ea6ccc8df 100644 --- a/test/hotspot/jtreg/compiler/vectorization/runner/ArrayIndexFillTest.java +++ b/test/hotspot/jtreg/compiler/vectorization/runner/ArrayIndexFillTest.java -@@ -21,6 +21,12 @@ +@@ -22,6 +22,12 @@ * questions. */ @@ -80253,7 +80711,7 @@ index a4eca0fe8..de44f6052 100644 /* * @test * @summary Vectorization test on array index fill -@@ -35,7 +41,7 @@ +@@ -36,7 +42,7 @@ * -XX:+WhiteBoxAPI * compiler.vectorization.runner.ArrayIndexFillTest * @@ -80289,10 +80747,10 @@ index 2e7302bba..964c03955 100644 */ diff --git a/test/hotspot/jtreg/compiler/vectorization/runner/ArrayShiftOpTest.java b/test/hotspot/jtreg/compiler/vectorization/runner/ArrayShiftOpTest.java -index eea79ac4c..526aec568 100644 +index 44f9286c6..bf90e9ef7 100644 --- a/test/hotspot/jtreg/compiler/vectorization/runner/ArrayShiftOpTest.java +++ b/test/hotspot/jtreg/compiler/vectorization/runner/ArrayShiftOpTest.java -@@ -21,6 +21,12 @@ +@@ -22,6 +22,12 @@ * questions. */ @@ -80305,7 +80763,7 @@ index eea79ac4c..526aec568 100644 /* * @test * @bug 8183390 8332905 -@@ -36,7 +42,7 @@ +@@ -37,7 +43,7 @@ * -XX:+WhiteBoxAPI * compiler.vectorization.runner.ArrayShiftOpTest * @@ -83615,7 +84073,7 @@ index e78e200ac..0a6abfd08 100644 OS("isAix", "isLinux", "isOSX", "isWindows"), VM_TYPE("isClient", "isServer", "isMinimal", "isZero", "isEmbedded"), diff --git a/test/lib/jdk/test/lib/Platform.java b/test/lib/jdk/test/lib/Platform.java -index e2451fc83..be0ecfd98 100644 +index 4a4b164cd..ad6b11c3e 100644 --- a/test/lib/jdk/test/lib/Platform.java +++ b/test/lib/jdk/test/lib/Platform.java @@ -21,6 +21,12 @@ @@ -83631,7 +84089,7 @@ index e2451fc83..be0ecfd98 100644 package jdk.test.lib; import java.io.BufferedReader; -@@ -234,6 +240,10 @@ public class Platform { +@@ -235,6 +241,10 @@ public class Platform { return isArch("(i386)|(x86(?!_64))"); } @@ -83784,3 +84242,6 @@ index 000000000..1ee6649cd + } + } +} +-- +2.43.0 + diff --git a/openjdk-21.spec b/openjdk-21.spec index 3198b95..5f6e6d4 100644 --- a/openjdk-21.spec +++ b/openjdk-21.spec @@ -2059,7 +2059,7 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect * Wed Aug 7 2024 Autistic_boyya - 1:21.0.4.7-3 - delete rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch -* Mon Jul 29 2024 zhaosaisai - 1:21.0.4.7-2 +* Fri Aug 2 2024 zhaosaisai - 1:21.0.4.7-2 - change boot jdk to itself * Thu Aug 1 2024 aoqi - 1:21.0.4.7-1 -- Gitee