--- a/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Fri May 06 19:35:23 2016 +0300
+++ b/hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Fri May 06 18:08:01 2016 +0000
@@ -1559,13 +1559,13 @@
@HotSpotVMAddress(name = "os::javaTimeMillis") @Stable public long javaTimeMillisAddress;
@HotSpotVMAddress(name = "os::javaTimeNanos") @Stable public long javaTimeNanosAddress;
- @HotSpotVMAddress(name = "SharedRuntime::dsin") @Stable public long arithmeticSinAddress;
- @HotSpotVMAddress(name = "SharedRuntime::dcos") @Stable public long arithmeticCosAddress;
- @HotSpotVMAddress(name = "SharedRuntime::dtan") @Stable public long arithmeticTanAddress;
- @HotSpotVMAddress(name = "SharedRuntime::dexp") @Stable public long arithmeticExpAddress;
- @HotSpotVMAddress(name = "SharedRuntime::dlog") @Stable public long arithmeticLogAddress;
- @HotSpotVMAddress(name = "SharedRuntime::dlog10") @Stable public long arithmeticLog10Address;
- @HotSpotVMAddress(name = "SharedRuntime::dpow") @Stable public long arithmeticPowAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::dsin", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticSinAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::dcos", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticCosAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::dtan", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticTanAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::dexp", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticExpAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::dlog", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticLogAddress;
+ @HotSpotVMField(name = "CompilerToVM::Data::dlog10", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticLog10Address;
+ @HotSpotVMField(name = "CompilerToVM::Data::dpow", type = "address", get = HotSpotVMField.Type.VALUE) @Stable public long arithmeticPowAddress;
@HotSpotVMFlag(name = "JVMCICounterSize") @Stable public int jvmciCountersSize;
--- a/hotspot/src/share/vm/jvmci/jvmciCompilerToVM.cpp Fri May 06 19:35:23 2016 +0300
+++ b/hotspot/src/share/vm/jvmci/jvmciCompilerToVM.cpp Fri May 06 18:08:01 2016 +0000
@@ -154,6 +154,14 @@
int CompilerToVM::Data::vm_page_size;
+address CompilerToVM::Data::dsin;
+address CompilerToVM::Data::dcos;
+address CompilerToVM::Data::dtan;
+address CompilerToVM::Data::dexp;
+address CompilerToVM::Data::dlog;
+address CompilerToVM::Data::dlog10;
+address CompilerToVM::Data::dpow;
+
void CompilerToVM::Data::initialize() {
Klass_vtable_start_offset = in_bytes(Klass::vtable_start_offset());
Klass_vtable_length_offset = in_bytes(Klass::vtable_length_offset());
@@ -205,6 +213,23 @@
}
vm_page_size = os::vm_page_size();
+
+#define SET_TRIGFUNC(name) \
+ if (StubRoutines::name() != NULL) { \
+ name = StubRoutines::name(); \
+ } else { \
+ name = CAST_FROM_FN_PTR(address, SharedRuntime::name); \
+ }
+
+ SET_TRIGFUNC(dsin);
+ SET_TRIGFUNC(dcos);
+ SET_TRIGFUNC(dtan);
+ SET_TRIGFUNC(dexp);
+ SET_TRIGFUNC(dlog10);
+ SET_TRIGFUNC(dlog);
+ SET_TRIGFUNC(dpow);
+
+#undef SET_TRIGFUNC
}
/**
--- a/hotspot/src/share/vm/jvmci/jvmciCompilerToVM.hpp Fri May 06 19:35:23 2016 +0300
+++ b/hotspot/src/share/vm/jvmci/jvmciCompilerToVM.hpp Fri May 06 18:08:01 2016 +0000
@@ -65,6 +65,14 @@
static int vm_page_size;
+ static address dsin;
+ static address dcos;
+ static address dtan;
+ static address dexp;
+ static address dlog;
+ static address dlog10;
+ static address dpow;
+
public:
static void initialize();
};
--- a/hotspot/src/share/vm/jvmci/vmStructs_jvmci.cpp Fri May 06 19:35:23 2016 +0300
+++ b/hotspot/src/share/vm/jvmci/vmStructs_jvmci.cpp Fri May 06 18:08:01 2016 +0000
@@ -76,6 +76,14 @@
\
static_field(CompilerToVM::Data, vm_page_size, int) \
\
+ static_field(CompilerToVM::Data, dsin, address) \
+ static_field(CompilerToVM::Data, dcos, address) \
+ static_field(CompilerToVM::Data, dtan, address) \
+ static_field(CompilerToVM::Data, dexp, address) \
+ static_field(CompilerToVM::Data, dlog, address) \
+ static_field(CompilerToVM::Data, dlog10, address) \
+ static_field(CompilerToVM::Data, dpow, address) \
+ \
static_field(Abstract_VM_Version, _features, uint64_t) \
\
nonstatic_field(Array<int>, _length, int) \
@@ -524,13 +532,6 @@
declare_function(SharedRuntime::exception_handler_for_return_address) \
declare_function(SharedRuntime::OSR_migration_end) \
declare_function(SharedRuntime::enable_stack_reserved_zone) \
- declare_function(SharedRuntime::dsin) \
- declare_function(SharedRuntime::dcos) \
- declare_function(SharedRuntime::dtan) \
- declare_function(SharedRuntime::dexp) \
- declare_function(SharedRuntime::dlog) \
- declare_function(SharedRuntime::dlog10) \
- declare_function(SharedRuntime::dpow) \
\
declare_function(os::dll_load) \
declare_function(os::dll_lookup) \