COMPXDP;
        COMPYDP;
-
-       u64 zm; int ze; int zs __maybe_unused; int zc;
+       COMPZDP;
 
        EXPLODEXDP;
        EXPLODEYDP;
-       EXPLODEDP(z, zc, zs, ze, zm)
+       EXPLODEZDP;
 
        FLUSHXDP;
        FLUSHYDP;
-       FLUSHDP(z, zc, zs, ze, zm);
+       FLUSHZDP;
 
        ieee754_clearcx();
 
                ieee754_setcx(IEEE754_INVALID_OPERATION);
                return ieee754dp_nanxcpt(z);
        case IEEE754_CLASS_DNORM:
-               DPDNORMx(zm, ze);
+               DPDNORMZ;
        /* QNAN is handled separately below */
        }
 
 
 #define COMPYSP \
        unsigned ym; int ye; int ys; int yc
 
+#define COMPZSP \
+       unsigned zm; int ze; int zs; int zc
+
 #define EXPLODESP(v, vc, vs, ve, vm)                                   \
 {                                                                      \
        vs = SPSIGN(v);                                                 \
 }
 #define EXPLODEXSP EXPLODESP(x, xc, xs, xe, xm)
 #define EXPLODEYSP EXPLODESP(y, yc, ys, ye, ym)
+#define EXPLODEZSP EXPLODESP(z, zc, zs, ze, zm)
 
 
 #define COMPXDP \
 #define COMPYDP \
        u64 ym; int ye; int ys; int yc
 
+#define COMPZDP \
+       u64 zm; int ze; int zs; int zc
+
 #define EXPLODEDP(v, vc, vs, ve, vm)                                   \
 {                                                                      \
        vm = DPMANT(v);                                                 \
 }
 #define EXPLODEXDP EXPLODEDP(x, xc, xs, xe, xm)
 #define EXPLODEYDP EXPLODEDP(y, yc, ys, ye, ym)
+#define EXPLODEZDP EXPLODEDP(z, zc, zs, ze, zm)
 
 #define FLUSHDP(v, vc, vs, ve, vm)                                     \
        if (vc==IEEE754_CLASS_DNORM) {                                  \
 
 #define FLUSHXDP FLUSHDP(x, xc, xs, xe, xm)
 #define FLUSHYDP FLUSHDP(y, yc, ys, ye, ym)
+#define FLUSHZDP FLUSHDP(z, zc, zs, ze, zm)
 #define FLUSHXSP FLUSHSP(x, xc, xs, xe, xm)
 #define FLUSHYSP FLUSHSP(y, yc, ys, ye, ym)
+#define FLUSHZSP FLUSHSP(z, zc, zs, ze, zm)
 
 #endif /* __IEEE754INT_H  */
 
 
        COMPXSP;
        COMPYSP;
-       u32 zm; int ze; int zs __maybe_unused; int zc;
+       COMPZSP;
 
        EXPLODEXSP;
        EXPLODEYSP;
-       EXPLODESP(z, zc, zs, ze, zm)
+       EXPLODEZSP;
 
        FLUSHXSP;
        FLUSHYSP;
-       FLUSHSP(z, zc, zs, ze, zm);
+       FLUSHZSP;
 
        ieee754_clearcx();
 
                ieee754_setcx(IEEE754_INVALID_OPERATION);
                return ieee754sp_nanxcpt(z);
        case IEEE754_CLASS_DNORM:
-               SPDNORMx(zm, ze);
+               SPDNORMZ;
        /* QNAN is handled separately below */
        }