Use workctx instead of ctx for cosmetic reasons. Also zero-pad the result
in the simple path (not correctly rounded but faster).
diff --git a/Modules/_decimal/libmpdec/mpdecimal.c b/Modules/_decimal/libmpdec/mpdecimal.c
index 801b9a1..f6fefb9 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.c
+++ b/Modules/_decimal/libmpdec/mpdecimal.c
@@ -4168,7 +4168,7 @@
             if (mpd_isspecial(result) || mpd_iszerocoeff(result) ||
                 mpd_qcmp(&t1, &t2, status) == 0) {
                 workctx.clamp = ctx->clamp;
-                _mpd_zeropad(result, ctx, status);
+                _mpd_zeropad(result, &workctx, status);
                 mpd_check_underflow(result, &workctx, status);
                 mpd_qfinalize(result, &workctx, status);
                 break;
@@ -4182,6 +4182,7 @@
     }
     else {
         _mpd_qexp(result, a, &workctx, status);
+        _mpd_zeropad(result, &workctx, status);
         mpd_check_underflow(result, &workctx, status);
         mpd_qfinalize(result, &workctx, status);
     }