Skip to content

Commit ee7bb53

Browse files
authored
Update (2023.12.08, 2nd)
32841: LA port of 8316309: AArch64: VMError::print_native_stack() crashes on Java native method frame 32840: LA port of 8312522: Implementation of Foreign Function & Memory API
1 parent 57190e4 commit ee7bb53

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

src/java.base/share/classes/jdk/internal/foreign/abi/loongarch64/linux/LinuxLoongArch64Linker.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,21 @@
2828

2929
import jdk.internal.foreign.abi.AbstractLinker;
3030
import jdk.internal.foreign.abi.LinkerOptions;
31+
import jdk.internal.foreign.abi.SharedUtils;
3132

3233
import java.lang.foreign.FunctionDescriptor;
34+
import java.lang.foreign.MemoryLayout;
35+
import java.lang.foreign.ValueLayout;
3336
import java.lang.invoke.MethodHandle;
3437
import java.lang.invoke.MethodType;
3538
import java.nio.ByteOrder;
39+
import java.util.Map;
3640

3741
public final class LinuxLoongArch64Linker extends AbstractLinker {
3842

43+
static final Map<String, MemoryLayout> CANONICAL_LAYOUTS =
44+
SharedUtils.canonicalLayouts(ValueLayout.JAVA_LONG, ValueLayout.JAVA_LONG, ValueLayout.JAVA_INT);
45+
3946
public static LinuxLoongArch64Linker getInstance() {
4047
final class Holder {
4148
private static final LinuxLoongArch64Linker INSTANCE = new LinuxLoongArch64Linker();
@@ -62,4 +69,9 @@ protected UpcallStubFactory arrangeUpcall(MethodType targetType, FunctionDescrip
6269
protected ByteOrder linkerByteOrder() {
6370
return ByteOrder.LITTLE_ENDIAN;
6471
}
72+
73+
@Override
74+
public Map<String, MemoryLayout> canonicalLayouts() {
75+
return CANONICAL_LAYOUTS;
76+
}
6577
}

test/hotspot/jtreg/runtime/ErrorHandling/StackWalkNativeToJava.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
*
2323
*/
2424

25+
/*
26+
* This file has been modified by Loongson Technology in 2023, These
27+
* modifications are Copyright (c) 2023, Loongson Technology, and are made
28+
* available on the same license terms set forth above.
29+
*/
30+
2531
import jdk.test.lib.process.OutputAnalyzer;
2632
import jdk.test.lib.process.ProcessTools;
2733
import jdk.test.lib.Utils;
@@ -33,7 +39,7 @@
3339
* @test StackWalkNativeToJava
3440
* @bug 8316309
3541
* @summary Check that walking the stack works fine when going from C++ frame to Java frame.
36-
* @requires os.arch=="amd64" | os.arch=="x86_64" | os.arch=="aarch64"
42+
* @requires os.arch=="amd64" | os.arch=="x86_64" | os.arch=="aarch64" | os.arch=="loongarch64"
3743
* @requires os.family != "windows"
3844
* @requires vm.flagless
3945
* @library /test/lib

test/jdk/java/foreign/callarranger/TestLoongArch64CallArranger.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
/*
2626
* @test
27-
* @enablePreview
2827
* @requires sun.arch.data.model == "64"
2928
* @compile platform/PlatformLayouts.java
3029
* @modules java.base/jdk.internal.foreign

0 commit comments

Comments
 (0)