--- old/test/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/NativeCallTest.java 2016-07-18 10:32:13.000000000 -0700 +++ new/test/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/NativeCallTest.java 2016-07-18 10:32:13.000000000 -0700 @@ -75,7 +75,7 @@ } @Test - public void testS32SDILDS() { + public void testF32SDILDS() { int sCount = 32; Object[] remainingArgs = new Object[]{ // Pairs of , 1.2345678F, float.class, @@ -95,7 +95,31 @@ argValues[sCount + i / 2] = remainingArgs[i + 0]; argClazz[sCount + i / 2] = (Class) remainingArgs[i + 1]; } - test("S32SDILDS", getS32SDILDS(), float.class, argClazz, argValues); + test("F32SDILDS", getF32SDILDS(), float.class, argClazz, argValues); + } + + @Test + public void testI32SDILDS() { + int sCount = 32; + Object[] remainingArgs = new Object[]{ // Pairs of , + 1.2345678F, float.class, + 3.212434D, double.class, + 43921652, int.class, + 0xCAFEBABEDEADBEEFL, long.class, + .31212333D, double.class, + 8.7654321F, float.class + }; + Class[] argClazz = new Class[sCount + remainingArgs.length / 2]; + Object[] argValues = new Object[sCount + remainingArgs.length / 2]; + for (int i = 0; i < sCount; i++) { + argValues[i] = i; + argClazz[i] = int.class; + } + for (int i = 0; i < remainingArgs.length; i += 2) { + argValues[sCount + i / 2] = remainingArgs[i + 0]; + argClazz[sCount + i / 2] = (Class) remainingArgs[i + 1]; + } + test("I32SDILDS", getI32SDILDS(), float.class, argClazz, argValues); } public void test(String name, long addr, Class returnClazz, Class[] types, Object[] values) { @@ -135,26 +159,83 @@ return _SDILDS(a, b, c, d, e, f); } - public static native long getS32SDILDS(); + public static native long getF32SDILDS(); - public static native float _S32SDILDS( - float f00, float f01, float f02, float f03, float f04, float f05, float f06, float f07, + public static native float _F32SDILDS(float f00, float f01, float f02, float f03, float f04, float f05, float f06, float f07, float f08, float f09, float f0a, float f0b, float f0c, float f0d, float f0e, float f0f, float f10, float f11, float f12, float f13, float f14, float f15, float f16, float f17, float f18, float f19, float f1a, float f1b, float f1c, float f1d, float f1e, float f1f, float a, double b, int c, long d, double e, float f); - public static float S32SDILDS( - float f00, float f01, float f02, float f03, float f04, float f05, float f06, float f07, + public static float F32SDILDS(float f00, float f01, float f02, float f03, float f04, float f05, float f06, float f07, float f08, float f09, float f0a, float f0b, float f0c, float f0d, float f0e, float f0f, float f10, float f11, float f12, float f13, float f14, float f15, float f16, float f17, float f18, float f19, float f1a, float f1b, float f1c, float f1d, float f1e, float f1f, float a, double b, int c, long d, double e, float f) { - return _S32SDILDS( - f00, f01, f02, f03, f04, f05, f06, f07, + return _F32SDILDS(f00, f01, f02, f03, f04, f05, f06, f07, f08, f09, f0a, f0b, f0c, f0d, f0e, f0f, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f1a, f1b, f1c, f1d, f1e, f1f, a, b, c, d, e, f); } + + public static native long getD32SDILDS(); + + public static native float _D32SDILDS(double d00, double d01, double d02, double d03, double d04, double d05, double d06, double d07, + double d08, double d09, double d0a, double d0b, double d0c, double d0d, double d0e, double d0f, + double d10, double d11, double d12, double d13, double d14, double d15, double d16, double d17, + double d18, double d19, double d1a, double d1b, double d1c, double d1d, double d1e, double d1f, + float a, double b, int c, long d, double e, float f); + + public static float D32SDILDS(double d00, double d01, double d02, double d03, double d04, double d05, double d06, double d07, + double d08, double d09, double d0a, double d0b, double d0c, double d0d, double d0e, double d0f, + double d10, double d11, double d12, double d13, double d14, double d15, double d16, double d17, + double d18, double d19, double d1a, double d1b, double d1c, double d1d, double d1e, double d1f, + float a, double b, int c, long d, double e, float f) { + return _D32SDILDS(d00, d01, d02, d03, d04, d05, d06, d07, + d08, d09, d0a, d0b, d0c, d0d, d0e, d0d, + d10, d11, d12, d13, d14, d15, d16, d17, + d18, d19, d1a, d1b, d1c, d1d, d1e, d1f, + a, b, c, d, e, f); + } + + public static native long getI32SDILDS(); + + public static native float _I32SDILDS(int i00, int i01, int i02, int i03, int i04, int i05, int i06, int i07, + int i08, int i09, int i0a, int i0b, int i0c, int i0d, int i0e, int i0f, + int i10, int i11, int i12, int i13, int i14, int i15, int i16, int i17, + int i18, int i19, int i1a, int i1b, int i1c, int i1d, int i1e, int i1f, + float a, double b, int c, long d, double e, float f); + + public static float I32SDILDS(int i00, int i01, int i02, int i03, int i04, int i05, int i06, int i07, + int i08, int i09, int i0a, int i0b, int i0c, int i0d, int i0e, int i0f, + int i10, int i11, int i12, int i13, int i14, int i15, int i16, int i17, + int i18, int i19, int i1a, int i1b, int i1c, int i1d, int i1e, int i1f, + float a, double b, int c, long d, double e, float f) { + return _I32SDILDS(i00, i01, i02, i03, i04, i05, i06, i07, + i08, i09, i0a, i0b, i0c, i0d, i0e, i0f, + i10, i11, i12, i13, i14, i15, i16, i17, + i18, i19, i1a, i1b, i1c, i1d, i1e, i1f, + a, b, c, d, e, f); + } + + public static native long getL32SDILDS(); + + public static native float _L32SDILDS(long l00, long l01, long l02, long l03, long l04, long l05, long l06, long l07, + long l08, long l09, long l0a, long l0b, long l0c, long l0d, long l0e, long l0f, + long l10, long l11, long l12, long l13, long l14, long l15, long l16, long l17, + long l18, long l19, long l1a, long l1b, long l1c, long l1d, long l1e, long l1f, + float a, double b, int c, long d, double e, float f); + + public static float L32SDILDS(long l00, long l01, long l02, long l03, long l04, long l05, long l06, long l07, + long l08, long l09, long l0a, long l0b, long l0c, long l0d, long l0e, long l0f, + long l10, long l11, long l12, long l13, long l14, long l15, long l16, long l17, + long l18, long l19, long l1a, long l1b, long l1c, long l1d, long l1e, long l1f, + float a, double b, int c, long d, double e, float f) { + return _L32SDILDS(l00, l01, l02, l03, l04, l05, l06, l07, + l08, l09, l0a, l0b, l0c, l0d, l0e, l0f, + l10, l11, l12, l13, l14, l15, l16, l17, + l18, l19, l1a, l1b, l1c, l1d, l1e, l1f, + a, b, c, d, e, f); + } }