From: Stefan Ring Date: Fri, 14 Oct 2011 21:22:53 +0000 (+0200) Subject: * src/vm/jit/arm/codegen.c: Remove hack for return value in float registers. X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=cacao.git;a=commitdiff_plain;h=278063eaf49b3b3fc68b40cc7fc4172a065f4e99 * 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. --- 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 */