RFR(M): 8024342: PPC64 (part 111): Support for C calling conventions that require 64-bit ints.
vladimir.kozlov at oracle.com
Wed Sep 11 17:54:36 PDT 2013
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.
On 9/9/13 1:42 AM, Lindenmaier, Goetz wrote:
> 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.
> Please review and test this change.
> Best regards,
More information about the hotspot-dev