diff src/cpu/ppc/vm/sharedRuntime_ppc.cpp @ 14418:cfd05ec74089

8024342: PPC64 (part 111): Support for C calling conventions that require 64-bit ints. Summary: Some platforms, as ppc and s390x/zArch require that 32-bit ints are passed as 64-bit values to C functions. This change adds support to adapt the signature and to issue proper casts to c2-compiled stubs. The functions are used in generate_native_wrapper(). Adapt signature used by the compiler as in PhaseIdealLoop::intrinsify_fill(). Reviewed-by: kvn
author goetz
date Wed, 18 Sep 2013 14:34:56 -0700
parents ec28f9c041ff
children b0133e4187d3
line wrap: on
line diff
--- a/src/cpu/ppc/vm/sharedRuntime_ppc.cpp	Fri Sep 13 22:50:47 2013 +0200
+++ b/src/cpu/ppc/vm/sharedRuntime_ppc.cpp	Wed Sep 18 14:34:56 2013 -0700
@@ -734,11 +734,8 @@
       // We must cast ints to longs and use full 64 bit stack slots
       // here. We do the cast in GraphKit::gen_stub() and just guard
       // here against loosing that change.
-      Unimplemented(); // TODO: PPC port
-      /*
-      assert(SharedRuntime::c_calling_convention_requires_ints_as_longs(),
+      assert(CCallingConventionRequiresIntsAsLongs,
              "argument of type int should be promoted to type long");
-      */
       guarantee(i > 0 && sig_bt[i-1] == T_LONG,
                 "argument of type (bt) should have been promoted to type (T_LONG,bt) for bt in "
                 "{T_BOOLEAN, T_CHAR, T_BYTE, T_SHORT, T_INT}");
@@ -856,7 +853,6 @@
   const int adapter_size = frame::top_ijava_frame_abi_size +
                            round_to(total_args_passed * wordSize, frame::alignment_in_bytes);
 
-
   // regular (verified) c2i entry point
   c2i_entrypoint = __ pc();