From 06737d68d0604a44a61f82dfb36e5531d2103bf1 Mon Sep 17 00:00:00 2001 From: michi Date: Wed, 20 Jul 2005 03:09:11 +0000 Subject: [PATCH] * ICMD_INVOKE*: prevented precoloring of float argument registers for arm --- src/vm/jit/stack.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/vm/jit/stack.c b/src/vm/jit/stack.c index ebe749ce8..b23445b80 100644 --- a/src/vm/jit/stack.c +++ b/src/vm/jit/stack.c @@ -30,7 +30,7 @@ Christian Thalinger Christian Ullrich - $Id: stack.c 3045 2005-07-18 14:35:32Z twisti $ + $Id: stack.c 3071 2005-07-20 03:09:11Z michi $ */ @@ -1951,7 +1951,12 @@ methodinfo *analyse_stack(methodinfo *m, codegendata *cd, registerdata *rd) copy = curstack; for (i-- ; i >= 0; i--) { +#if defined(SUPPORT_NO_FLOAT_ARGUMENT_REGISTERS) + if (!(copy->flags & SAVEDVAR) && + (!IS_FLT_DBL_TYPE(copy->type) || md->params[i].inmemory)) { +#else if (!(copy->flags & SAVEDVAR)) { +#endif copy->varkind = ARGVAR; copy->varnum = i; if (md->params[i].inmemory) { @@ -1960,8 +1965,12 @@ methodinfo *analyse_stack(methodinfo *m, codegendata *cd, registerdata *rd) } else { copy->flags = 0; if (IS_FLT_DBL_TYPE(copy->type)) +#if defined(SUPPORT_NO_FLOAT_ARGUMENT_REGISTERS) + assert(0); +#else copy->regoff = rd->argfltregs[md->params[i].regoff]; +#endif else { #if defined(SUPPORT_COMBINE_INTEGER_REGISTERS) if (IS_2_WORD_TYPE(copy->type)) -- 2.25.1