68 lines
2.7 KiB
Diff
Executable File
68 lines
2.7 KiB
Diff
Executable File
commit 29fd7a83a66269e360af353c64d945612be62623
|
|
Author: g00357498 <guoge1@huawei.com>
|
|
Date: Thu Feb 4 16:37:53 2021 +0800
|
|
|
|
8240353: AArch64: missing support for -XX:+ExtendedDTraceProbes in C1
|
|
|
|
DTS/AR: DTS202102040ILH2PP1F00
|
|
Summary: <c1>: java -XX:+ExtendedDTraceProbes throws SIGILL
|
|
LLT: java -XX:+ExtendedDTraceProbes
|
|
Patch Type: backport
|
|
Bug url: https://bugs.openjdk.java.net/browse/JDK-8240353
|
|
|
|
diff --git a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
|
|
index 7798aa509..a8e89cde0 100644
|
|
--- a/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
|
|
+++ b/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
|
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
@@ -449,12 +449,9 @@ int LIR_Assembler::emit_unwind_handler() {
|
|
}
|
|
|
|
if (compilation()->env()->dtrace_method_probes()) {
|
|
- __ call_Unimplemented();
|
|
-#if 0
|
|
- __ movptr(Address(rsp, 0), rax);
|
|
- __ mov_metadata(Address(rsp, sizeof(void*)), method()->constant_encoding());
|
|
- __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit)));
|
|
-#endif
|
|
+ __ mov(c_rarg0, rthread);
|
|
+ __ mov_metadata(c_rarg1, method()->constant_encoding());
|
|
+ __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_exit), c_rarg0, c_rarg1);
|
|
}
|
|
|
|
if (method()->is_synchronized() || compilation()->env()->dtrace_method_probes()) {
|
|
diff --git a/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp b/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
|
|
index 2344e0be3..3f5ab6641 100644
|
|
--- a/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
|
|
+++ b/src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
|
|
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
@@ -1123,6 +1123,16 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
|
}
|
|
break;
|
|
|
|
+ case dtrace_object_alloc_id:
|
|
+ { // c_rarg0: object
|
|
+ StubFrame f(sasm, "dtrace_object_alloc", dont_gc_arguments);
|
|
+ save_live_registers(sasm);
|
|
+
|
|
+ __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_object_alloc), c_rarg0);
|
|
+
|
|
+ restore_live_registers(sasm);
|
|
+ }
|
|
+ break;
|
|
|
|
default:
|
|
{ StubFrame f(sasm, "unimplemented entry", dont_gc_arguments);
|