Skip to content

Commit 3562a2a

Browse files
authored
Update (2023.01.10)
29064: LA port of 8296875: Generational ZGC: Refactor loom code 29063: LA port of 8286302: Port JEP 425 to PPC64
1 parent 88c7634 commit 3562a2a

File tree

5 files changed

+55
-5
lines changed

5 files changed

+55
-5
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright (c) 2022 SAP SE. All rights reserved.
3+
* Copyright (c) 2023, Loongson Technology. All rights reserved.
4+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5+
*
6+
* This code is free software; you can redistribute it and/or modify it
7+
* under the terms of the GNU General Public License version 2 only, as
8+
* published by the Free Software Foundation.
9+
*
10+
* This code is distributed in the hope that it will be useful, but WITHOUT
11+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13+
* version 2 for more details (a copy is included in the LICENSE file that
14+
* accompanied this code).
15+
*
16+
* You should have received a copy of the GNU General Public License version
17+
* 2 along with this work; if not, write to the Free Software Foundation,
18+
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19+
*
20+
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21+
* or visit www.oracle.com if you need additional information or have any
22+
* questions.
23+
*
24+
*/
25+
26+
#ifndef CPU_LOONGARCH_CONTINUATIONENTRY_LOONGARCH_HPP
27+
#define CPU_LOONGARCH_CONTINUATIONENTRY_LOONGARCH_HPP
28+
29+
class ContinuationEntryPD {
30+
// empty
31+
};
32+
33+
#endif // CPU_LOONGARCH_CONTINUATIONENTRY_LOONGARCH_HPP

src/hotspot/cpu/loongarch/continuationFreezeThaw_loongarch.inline.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Copyright (c) 2019, 2022, Oracle and/or its affiliates. All rights reserved.
3-
* Copyright (c) 2022, Loongson Technology. All rights reserved.
3+
* Copyright (c) 2022, 2023, Loongson Technology. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
66
* This code is free software; you can redistribute it and/or modify it
@@ -195,6 +195,12 @@ void ThawBase::patch_chunk_pd(intptr_t* sp) {
195195
*(intptr_t**)(sp - 2) = fp;
196196
}
197197

198+
template <typename ConfigT>
199+
inline void Thaw<ConfigT>::patch_caller_links(intptr_t* sp, intptr_t* bottom) {
200+
// Fast path depends on !PreserveFramePointer. See can_thaw_fast().
201+
assert(!PreserveFramePointer, "Frame pointers need to be fixed");
202+
}
203+
198204
// Slow path
199205

200206
inline frame ThawBase::new_entry_frame() {

src/hotspot/cpu/loongarch/continuationHelper_loongarch.inline.hpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
3-
* Copyright (c) 2022, Loongson Technology. All rights reserved.
3+
* Copyright (c) 2022, 2023, Loongson Technology. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
66
* This code is free software; you can redistribute it and/or modify it
@@ -101,7 +101,8 @@ inline address* ContinuationHelper::InterpretedFrame::return_pc_address(const fr
101101
return (address*)(f.fp() + frame::return_addr_offset);
102102
}
103103

104-
inline void ContinuationHelper::InterpretedFrame::patch_sender_sp(frame& f, intptr_t* sp) {
104+
inline void ContinuationHelper::InterpretedFrame::patch_sender_sp(frame& f, const frame& caller) {
105+
intptr_t* sp = caller.unextended_sp();
105106
assert(f.is_interpreted_frame(), "");
106107
intptr_t* la = f.addr_at(frame::interpreter_frame_sender_sp_offset);
107108
*la = f.is_heap_frame() ? (intptr_t)(sp - f.fp()) : (intptr_t)sp;
@@ -137,4 +138,8 @@ inline intptr_t* ContinuationHelper::InterpretedFrame::frame_top(const frame& f,
137138
return f.unextended_sp() + (callee_interpreted ? callee_argsize : 0);
138139
}
139140

141+
inline intptr_t* ContinuationHelper::InterpretedFrame::callers_sp(const frame& f) {
142+
return f.fp();
143+
}
144+
140145
#endif // CPU_LOONGARCH_CONTINUATIONFRAMEHELPERS_LOONGARCH_INLINE_HPP

src/hotspot/cpu/loongarch/frame_loongarch.hpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3-
* Copyright (c) 2015, 2022, Loongson Technology. All rights reserved.
3+
* Copyright (c) 2015, 2023, Loongson Technology. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
66
* This code is free software; you can redistribute it and/or modify it
@@ -105,6 +105,13 @@
105105

106106
// size, in words, of frame metadata (e.g. pc and link)
107107
metadata_words = 2,
108+
// size, in words, of metadata at frame bottom, i.e. it is not part of the
109+
// caller/callee overlap
110+
metadata_words_at_bottom = metadata_words,
111+
// size, in words, of frame metadata at the frame top, i.e. it is located
112+
// between a callee frame and its stack arguments, where it is part
113+
// of the caller/callee overlap
114+
metadata_words_at_top = 0,
108115
// in bytes
109116
frame_alignment = 16,
110117
// size, in words, of maximum shift in frame position due to alignment

src/hotspot/cpu/loongarch/sharedRuntime_loongarch_64.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1067,7 +1067,6 @@ OopMap* continuation_enter_setup(MacroAssembler* masm, int& stack_slots) {
10671067
__ sub_d(SP, SP, AT);
10681068

10691069
OopMap* map = new OopMap(((int)ContinuationEntry::size() + wordSize) / VMRegImpl::stack_slot_size, 0 /* arg_slots*/);
1070-
ContinuationEntry::setup_oopmap(map);
10711070

10721071
__ ld_d(AT, Address(TREG, JavaThread::cont_entry_offset()));
10731072
__ st_d(AT, Address(SP, ContinuationEntry::parent_offset()));

0 commit comments

Comments
 (0)