aboutsummaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
authoramurillo <none@none>2013-05-10 11:14:08 -0700
committeramurillo <none@none>2013-05-10 11:14:08 -0700
commit66de0e0741c042261606d62e0215a57b320519fc (patch)
treec3d533908a8ddda52365d2acaff93b53ce2d3872 /src/cpu
parent3a384c643c4940372d4bfa9d128d6a23c4646632 (diff)
parentc3dbf01a361b9a5ac1bd499f039c075a59af3b23 (diff)
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/sparc/vm/globalDefinitions_sparc.hpp2
-rw-r--r--src/cpu/sparc/vm/jni_sparc.h7
-rw-r--r--src/cpu/x86/vm/globalDefinitions_x86.hpp2
-rw-r--r--src/cpu/x86/vm/jni_x86.h8
-rw-r--r--src/cpu/zero/vm/cppInterpreter_zero.cpp8
-rw-r--r--src/cpu/zero/vm/jni_zero.h8
6 files changed, 31 insertions, 4 deletions
diff --git a/src/cpu/sparc/vm/globalDefinitions_sparc.hpp b/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
index e90896c49..cadaffe73 100644
--- a/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
+++ b/src/cpu/sparc/vm/globalDefinitions_sparc.hpp
@@ -30,4 +30,6 @@ const int BytesPerInstWord = 4;
const int StackAlignmentInBytes = (2*wordSize);
+#define SUPPORTS_NATIVE_CX8
+
#endif // CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP
diff --git a/src/cpu/sparc/vm/jni_sparc.h b/src/cpu/sparc/vm/jni_sparc.h
index 5cb443ba9..2b0ce0081 100644
--- a/src/cpu/sparc/vm/jni_sparc.h
+++ b/src/cpu/sparc/vm/jni_sparc.h
@@ -23,7 +23,12 @@
* questions.
*/
-#if defined(__GNUC__) && (__GNUC__ >= 4)
+// Note: please do not change these without also changing jni_md.h in the JDK
+// repository
+#ifndef __has_attribute
+ #define __has_attribute(x) 0
+#endif
+#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2))) || __has_attribute(visibility)
#define JNIEXPORT __attribute__((visibility("default")))
#define JNIIMPORT __attribute__((visibility("default")))
#else
diff --git a/src/cpu/x86/vm/globalDefinitions_x86.hpp b/src/cpu/x86/vm/globalDefinitions_x86.hpp
index 1c032e632..0771794ff 100644
--- a/src/cpu/x86/vm/globalDefinitions_x86.hpp
+++ b/src/cpu/x86/vm/globalDefinitions_x86.hpp
@@ -27,4 +27,6 @@
const int StackAlignmentInBytes = 16;
+#define SUPPORTS_NATIVE_CX8
+
#endif // CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP
diff --git a/src/cpu/x86/vm/jni_x86.h b/src/cpu/x86/vm/jni_x86.h
index 2cd7abd30..f5effdbe2 100644
--- a/src/cpu/x86/vm/jni_x86.h
+++ b/src/cpu/x86/vm/jni_x86.h
@@ -28,7 +28,13 @@
#if defined(SOLARIS) || defined(LINUX) || defined(_ALLBSD_SOURCE)
-#if defined(__GNUC__) && (__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2)
+
+// Note: please do not change these without also changing jni_md.h in the JDK
+// repository
+#ifndef __has_attribute
+ #define __has_attribute(x) 0
+#endif
+#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2))) || __has_attribute(visibility)
#define JNIEXPORT __attribute__((visibility("default")))
#define JNIIMPORT __attribute__((visibility("default")))
#else
diff --git a/src/cpu/zero/vm/cppInterpreter_zero.cpp b/src/cpu/zero/vm/cppInterpreter_zero.cpp
index 10501655d..9a237998c 100644
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp
+++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp
@@ -212,7 +212,13 @@ int CppInterpreter::native_entry(Method* method, intptr_t UNUSED, TRAPS) {
// Update the invocation counter
if ((UseCompiler || CountCompiledCalls) && !method->is_synchronized()) {
- InvocationCounter *counter = method->invocation_counter();
+ MethodCounters* mcs = method->method_counters();
+ if (mcs == NULL) {
+ CALL_VM_NOCHECK(mcs = InterpreterRuntime::build_method_counters(thread, method));
+ if (HAS_PENDING_EXCEPTION)
+ goto unwind_and_return;
+ }
+ InvocationCounter *counter = mcs->invocation_counter();
counter->increment();
if (counter->reached_InvocationLimit()) {
CALL_VM_NOCHECK(
diff --git a/src/cpu/zero/vm/jni_zero.h b/src/cpu/zero/vm/jni_zero.h
index 6ac4f63ea..11157f4f0 100644
--- a/src/cpu/zero/vm/jni_zero.h
+++ b/src/cpu/zero/vm/jni_zero.h
@@ -25,7 +25,13 @@
*/
-#if defined(__GNUC__) && (__GNUC__ >= 4)
+
+// Note: please do not change these without also changing jni_md.h in the JDK
+// repository
+#ifndef __has_attribute
+ #define __has_attribute(x) 0
+#endif
+#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ > 2))) || __has_attribute(visibility)
#define JNIEXPORT __attribute__((visibility("default")))
#define JNIIMPORT __attribute__((visibility("default")))
#else