--- a/hotspot/src/share/vm/runtime/orderAccess.cpp Tue Mar 24 15:09:52 2009 -0700
+++ b/hotspot/src/share/vm/runtime/orderAccess.cpp Thu Mar 26 14:31:45 2009 -0700
@@ -26,3 +26,15 @@
# include "incls/_orderAccess.cpp.incl"
volatile intptr_t OrderAccess::dummy = 0;
+
+void OrderAccess::StubRoutines_fence() {
+ // Use a stub if it exists. It may not exist during bootstrap so do
+ // nothing in that case but assert if no fence code exists after threads have been created
+ void (*func)() = CAST_TO_FN_PTR(void (*)(), StubRoutines::fence_entry());
+
+ if (func != NULL) {
+ (*func)();
+ return;
+ }
+ assert(Threads::number_of_threads() == 0, "for bootstrap only");
+}