Fix cfloat return on x86_64: only perform ABI transformation for non-extern(D)

functions.
There's no need to waste cycles with extern(D), which we get to define
ourselves. Fixes tests/mini/asm8.d. (Since the asm abiret code already assumed
{xmm0, xmm1} returns)
This commit is contained in:
Frits van Bommel
2009-02-26 23:35:39 +01:00
parent 4f51adc810
commit 03ce6604a0
3 changed files with 66 additions and 52 deletions

View File

@@ -180,7 +180,8 @@ struct X86_64_cfloat_rewrite : ABIRetRewrite
// test if rewrite applies to function
bool test(TypeFunction* tf)
{
return (tf->next->toBasetype() == Type::tcomplex32);
return (tf->linkage != LINKd)
&& (tf->next->toBasetype() == Type::tcomplex32);
}
};