--- a/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Tue Aug 06 16:33:59 2013 -0700
+++ b/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Tue Aug 06 21:06:19 2013 -0700
@@ -58,8 +58,8 @@
JavaCallWrapper* call_wrapper,
TRAPS);
public:
- JavaCallWrapper *call_wrapper() const {
- return (JavaCallWrapper *) value_of_word(call_wrapper_off);
+ JavaCallWrapper **call_wrapper() const {
+ return (JavaCallWrapper **) addr_of_word(call_wrapper_off);
}
public:
--- a/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Tue Aug 06 16:33:59 2013 -0700
+++ b/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Tue Aug 06 21:06:19 2013 -0700
@@ -141,7 +141,7 @@
return fp();
}
-inline JavaCallWrapper* frame::entry_frame_call_wrapper() const {
+inline JavaCallWrapper** frame::entry_frame_call_wrapper_addr() const {
return zero_entryframe()->call_wrapper();
}
--- a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Tue Aug 06 16:33:59 2013 -0700
+++ b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Tue Aug 06 21:06:19 2013 -0700
@@ -176,6 +176,19 @@
StubRoutines::_oop_arraycopy;
}
+ static int SafeFetch32(int *adr, int errValue) {
+ int value = errValue;
+ value = *adr;
+ return value;
+ }
+
+ static intptr_t SafeFetchN(intptr_t *adr, intptr_t errValue) {
+ intptr_t value = errValue;
+ value = *adr;
+ return value;
+ }
+
+
void generate_initial() {
// Generates all stubs and initializes the entry points
@@ -225,6 +238,15 @@
// arraycopy stubs used by compilers
generate_arraycopy_stubs();
+
+ // Safefetch stubs.
+ StubRoutines::_safefetch32_entry = CAST_FROM_FN_PTR(address, StubGenerator::SafeFetch32);
+ StubRoutines::_safefetch32_fault_pc = NULL;
+ StubRoutines::_safefetch32_continuation_pc = NULL;
+
+ StubRoutines::_safefetchN_entry = CAST_FROM_FN_PTR(address, StubGenerator::SafeFetchN);
+ StubRoutines::_safefetchN_fault_pc = NULL;
+ StubRoutines::_safefetchN_continuation_pc = NULL;
}
public:
--- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Tue Aug 06 16:33:59 2013 -0700
+++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Tue Aug 06 21:06:19 2013 -0700
@@ -410,16 +410,6 @@
int SpinPause() {
}
- int SafeFetch32(int *adr, int errValue) {
- int value = errValue;
- value = *adr;
- return value;
- }
- intptr_t SafeFetchN(intptr_t *adr, intptr_t errValue) {
- intptr_t value = errValue;
- value = *adr;
- return value;
- }
void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
if (from > to) {