From 278063eaf49b3b3fc68b40cc7fc4172a065f4e99 Mon Sep 17 00:00:00 2001 From: Stefan Ring Date: Fri, 14 Oct 2011 23:22:53 +0200 Subject: [PATCH] * src/vm/jit/arm/codegen.c: Remove hack for return value in float registers. This would only be relevant for -mfloat-abi=hard (armhf). At the moment, support for armhf is rather pointless and can never have worked because all arguments are passed in integer registers unconditionally. This applies to both the internal and the system ABI. --- src/vm/jit/arm/codegen.c | 41 ---------------------------------------- 1 file changed, 41 deletions(-) diff --git a/src/vm/jit/arm/codegen.c b/src/vm/jit/arm/codegen.c index f96ee749c..b82661a1d 100644 --- a/src/vm/jit/arm/codegen.c +++ b/src/vm/jit/arm/codegen.c @@ -1708,28 +1708,6 @@ void codegen_emit_instruction(jitdata* jd, instruction* iptr) M_MOV(REG_LR, REG_PC); M_MOV(REG_PC, REG_PV); -#if !defined(__SOFTFP__) - d = md->returntype.type; - - /* TODO: this is only a hack, since we use R0/R1 for float - return! this depends on gcc; it is independent from - our ENABLE_SOFTFLOAT define */ - if (d != TYPE_VOID && IS_FLT_DBL_TYPE(d)) { -#if 0 && !defined(NDEBUG) - dolog("BUILTIN that returns float or double (%s.%s)", m->clazz->name->text, m->name->text); -#endif - /* we cannot use this macro, since it is not defined - in ENABLE_SOFTFLOAT M_CAST_FLT_TO_INT_TYPED(d, - REG_FRESULT, REG_RESULT_TYPED(d)); */ - if (IS_2_WORD_TYPE(d)) { - DCD(0xed2d8102); /* stfd f0, [sp, #-8]! */ - M_LDRD_UPDATE(REG_RESULT_PACKED, REG_SP, 8); - } else { - DCD(0xed2d0101); /* stfs f0, [sp, #-4]!*/ - M_LDR_UPDATE(REG_RESULT, REG_SP, 4); - } - } -#endif break; case ICMD_INVOKESPECIAL: @@ -2507,25 +2485,6 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f, int s emit_recompute_pv(cd); -#if !defined(__SOFTFP__) - /* TODO: this is only a hack, since we use R0/R1 for float return! */ - /* this depends on gcc; it is independent from our ENABLE_SOFTFLOAT define */ - if (md->returntype.type != TYPE_VOID && IS_FLT_DBL_TYPE(md->returntype.type)) { -#if 0 && !defined(NDEBUG) - dolog("NATIVESTUB that returns float or double (%s.%s)", m->clazz->name->text, m->name->text); -#endif - /* we cannot use this macro, since it is not defined in ENABLE_SOFTFLOAT */ - /* M_CAST_FLT_TO_INT_TYPED(md->returntype.type, REG_FRESULT, REG_RESULT_TYPED(md->returntype.type)); */ - if (IS_2_WORD_TYPE(md->returntype.type)) { - DCD(0xed2d8102); /* stfd f0, [sp, #-8]! */ - M_LDRD_UPDATE(REG_RESULT_PACKED, REG_SP, 8); - } else { - DCD(0xed2d0101); /* stfs f0, [sp, #-4]!*/ - M_LDR_UPDATE(REG_RESULT, REG_SP, 4); - } - } -#endif - /* remove native stackframe info */ /* TODO: improve this store/load */ -- 2.25.1