From bdd45686de74cad5986694810a360b4deae18f3d Mon Sep 17 00:00:00 2001 From: Walter Bright Date: Tue, 22 Apr 2025 00:34:19 -0700 Subject: [PATCH] reals do not fit in XMM registers (#21288) --- compiler/src/dmd/backend/x86/cod4.d | 2 +- compiler/src/dmd/e2ir.d | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/src/dmd/backend/x86/cod4.d b/compiler/src/dmd/backend/x86/cod4.d index 35fc88a2a4..d17b091449 100644 --- a/compiler/src/dmd/backend/x86/cod4.d +++ b/compiler/src/dmd/backend/x86/cod4.d @@ -4666,7 +4666,7 @@ void cdpair(ref CGstate cg, ref CodeBuilder cdb, elem* e, ref regm_t pretregs) regm_t retregs = pretregs; if (retregs == mPSW && tycomplex(e.Ety) && config.inline8087) { - if (config.fpxmmregs) + if (config.fpxmmregs && tysize(e.Ety) < 20) retregs |= mXMM0 | mXMM1; else retregs |= mST01; diff --git a/compiler/src/dmd/e2ir.d b/compiler/src/dmd/e2ir.d index 87d359055b..9b027a0c5c 100644 --- a/compiler/src/dmd/e2ir.d +++ b/compiler/src/dmd/e2ir.d @@ -1765,7 +1765,7 @@ elem* toElem(Expression e, ref IRState irs) op = OPpair; else if (ty == Tcomplex32 && ty1 == Timaginary32 && ty2 == Tfloat32 || ty == Tcomplex64 && ty1 == Timaginary64 && ty2 == Tfloat64 || - 0 && ty == Tcomplex80 && ty1 == Timaginary80 && ty2 == Tfloat80) + ty == Tcomplex80 && ty1 == Timaginary80 && ty2 == Tfloat80) op = OPrpair; }