RFR(M): 8024342: PPC64 (part 111): Support for C calling conventions that require 64-bit ints.

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Sep 11 17:54:36 PDT 2013


Goetz,

Can you move convert_ints_to_longints*() methods from sharedRuntime.cpp 
to sharedRuntime_ppc.cpp? They are static and not used in any other places.

Why only intrinsify_fill changed? What about arraycopy and other stubs 
which use int parameter?

loopTransform.cpp: I don't think ConvI2L will work for t==T_FLOAT. Also 
you can use (t == T_INT || is_subword_type(t)) check instead for int types.

Thanks,
Vladimir

On 9/9/13 1:42 AM, Lindenmaier, Goetz wrote:
> Hi,
>
> This is the first of about 10 changes taking us to a rudimentary c2
> compiler on ppc64.
>
> 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(). We also need to adapt
> the signature in PhaseIdealLoop::intrinsify_fill().
>
> We add a function  c_calling_convention_requires_ints_as_longs()to the platform files of sharedRuntime, with
>
> enables this feature on ppc.  All other shared changes depend on this function.  The code should not affect the existing
>
> platforms.  The usage of the code is already visible in the sharedRuntime_ppc64 file in the staging repository (protected by
>
> ifdef COMPILER2).  Seehttp://hg.openjdk.java.net/ppc-aix-port/stage/hotspot/file/bdd155477289/src/cpu/ppc/vm/sharedRuntime_ppc.cpp
>
> line 1752 ff.
>
>
>
> http://cr.openjdk.java.net/~goetz/webrevs/8024342-intArg/
>
> Please review and test this change.
>
> Best regards,
>
>    Goetz.
>


More information about the hotspot-dev mailing list