--- a/hotspot/src/share/vm/opto/runtime.cpp Tue Jan 28 11:21:43 2014 -0800
+++ b/hotspot/src/share/vm/opto/runtime.cpp Tue Jan 28 12:25:34 2014 -0800
@@ -83,8 +83,11 @@
#ifdef TARGET_ARCH_MODEL_arm
# include "adfiles/ad_arm.hpp"
#endif
-#ifdef TARGET_ARCH_MODEL_ppc
-# include "adfiles/ad_ppc.hpp"
+#ifdef TARGET_ARCH_MODEL_ppc_32
+# include "adfiles/ad_ppc_32.hpp"
+#endif
+#ifdef TARGET_ARCH_MODEL_ppc_64
+# include "adfiles/ad_ppc_64.hpp"
#endif
@@ -793,11 +796,20 @@
const TypeFunc* OptoRuntime::array_fill_Type() {
- // create input type (domain): pointer, int, size_t
- const Type** fields = TypeTuple::fields(3 LP64_ONLY( + 1));
+ const Type** fields;
int argp = TypeFunc::Parms;
- fields[argp++] = TypePtr::NOTNULL;
- fields[argp++] = TypeInt::INT;
+ if (CCallingConventionRequiresIntsAsLongs) {
+ // create input type (domain): pointer, int, size_t
+ fields = TypeTuple::fields(3 LP64_ONLY( + 2));
+ fields[argp++] = TypePtr::NOTNULL;
+ fields[argp++] = TypeLong::LONG;
+ fields[argp++] = Type::HALF;
+ } else {
+ // create input type (domain): pointer, int, size_t
+ fields = TypeTuple::fields(3 LP64_ONLY( + 1));
+ fields[argp++] = TypePtr::NOTNULL;
+ fields[argp++] = TypeInt::INT;
+ }
fields[argp++] = TypeX_X; // size in whatevers (size_t)
LP64_ONLY(fields[argp++] = Type::HALF); // other half of long length
const TypeTuple *domain = TypeTuple::make(argp, fields);
@@ -1047,7 +1059,7 @@
}
// If we are forcing an unwind because of stack overflow then deopt is
- // irrelevant sice we are throwing the frame away anyway.
+ // irrelevant since we are throwing the frame away anyway.
if (deopting && !force_unwind) {
handler_address = SharedRuntime::deopt_blob()->unpack_with_exception();
@@ -1090,7 +1102,7 @@
// Note we enter without the usual JRT wrapper. We will call a helper routine that
// will do the normal VM entry. We do it this way so that we can see if the nmethod
// we looked up the handler for has been deoptimized in the meantime. If it has been
-// we must not use the handler and instread return the deopt blob.
+// we must not use the handler and instead return the deopt blob.
address OptoRuntime::handle_exception_C(JavaThread* thread) {
//
// We are in Java not VM and in debug mode we have a NoHandleMark