-/* tests/native/testarguments.c - tests argument passing
+/* tests/regression/native/testarguments.c - tests argument passing
- Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
- R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
- C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
+ Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+ C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
+ E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
TU Wien
This file is part of CACAO.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
- Contact: cacao@complang.tuwien.ac.at
+ Contact: cacao@cacaojvm.org
Authors: Christian Thalinger
- $Id: testarguments.c 3522 2005-10-28 18:07:00Z twisti $
+ Changes:
+
+ $Id: testarguments.c 4893 2006-05-08 11:03:57Z twisti $
*/
{
jmethodID mid;
-#if SIZEOF_VOID_P == 4
printf("java-native: 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx 0x%llx\n", a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
-#else
- printf("java-native: 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n", a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
-#endif
fflush(stdout);
mid = (*env)->GetStaticMethodID(env, clazz, "jlsub", "(JJJJJJJJJJJJJJJ)V");
printf("java-native:");
-#if SIZEOF_VOID_P == 4
x.d = a; printf(" 0x%llx", x.l);
x.d = b; printf(" 0x%llx", x.l);
x.d = c; printf(" 0x%llx", x.l);
x.d = m; printf(" 0x%llx", x.l);
x.d = n; printf(" 0x%llx", x.l);
x.d = o; printf(" 0x%llx", x.l);
-#else
- x.d = a; printf(" 0x%lx", x.l);
- x.d = b; printf(" 0x%lx", x.l);
- x.d = c; printf(" 0x%lx", x.l);
- x.d = d; printf(" 0x%lx", x.l);
- x.d = e; printf(" 0x%lx", x.l);
- x.d = f; printf(" 0x%lx", x.l);
- x.d = g; printf(" 0x%lx", x.l);
- x.d = h; printf(" 0x%lx", x.l);
- x.d = i; printf(" 0x%lx", x.l);
- x.d = j; printf(" 0x%lx", x.l);
- x.d = k; printf(" 0x%lx", x.l);
- x.d = l; printf(" 0x%lx", x.l);
- x.d = m; printf(" 0x%lx", x.l);
- x.d = n; printf(" 0x%lx", x.l);
- x.d = o; printf(" 0x%lx", x.l);
-#endif
printf("\n");
fflush(stdout);
mid = (*env)->GetStaticMethodID(env, clazz, "jdsub", "(DDDDDDDDDDDDDDD)V");
if (mid == 0) {
- printf("native: couldn't find jfsub\n");
+ printf("native: couldn't find jdsub\n");
+ return;
+ }
+
+ (*env)->CallStaticVoidMethod(env, clazz, mid, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
+}
+
+
+JNIEXPORT void JNICALL Java_testarguments_nmsub(JNIEnv *env, jclass clazz, jint a, jlong b, jfloat c, jdouble d, jint e, jlong f, jfloat g, jdouble h, jint i, jlong j, jfloat k, jdouble l, jint m, jlong n, jfloat o)
+{
+ jmethodID mid;
+ union {
+ jint i;
+ jlong l;
+ jfloat f;
+ jdouble d;
+ } x;
+
+ printf("java-native:");
+
+ printf(" 0x%x", a);
+ printf(" 0x%llx", b);
+ x.f = c; printf(" 0x%x", x.i);
+ x.d = d; printf(" 0x%llx", x.l);
+ printf(" 0x%x", e);
+ printf(" 0x%llx", f);
+ x.f = g; printf(" 0x%x", x.i);
+ x.d = h; printf(" 0x%llx", x.l);
+ printf(" 0x%x", i);
+ printf(" 0x%llx", j);
+ x.f = k; printf(" 0x%x", x.i);
+ x.d = l; printf(" 0x%llx", x.l);
+ printf(" 0x%x", m);
+ printf(" 0x%llx", n);
+ x.f = o; printf(" 0x%x", x.i);
+
+ printf("\n");
+ fflush(stdout);
+
+ mid = (*env)->GetStaticMethodID(env, clazz, "jmsub", "(IJFDIJFDIJFDIJF)V");
+
+ if (mid == 0) {
+ printf("native: couldn't find jmsub\n");
return;
}