This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
lib/perl5db.pl: Generalize for EBCDIC
[perl5.git] / pp.h
diff --git a/pp.h b/pp.h
index 58a0a5c..2636dbf 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -376,10 +376,10 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 #define RETSETYES      RETURNX(SETs(&PL_sv_yes))
 #define RETSETNO       RETURNX(SETs(&PL_sv_no))
 #define RETSETUNDEF    RETURNX(SETs(&PL_sv_undef))
+#define RETSETTARG     STMT_START { SETTARG; RETURN; } STMT_END
 
 #define ARGTARG                PL_op->op_targ
 
-    /* See OPpTARGET_MY: */
 #define MAXARG         (PL_op->op_private & OPpARG4_MASK)
 
 #define SWITCHSTACK(f,t) \
@@ -392,9 +392,10 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
     } STMT_END
 
 #define EXTEND_MORTAL(n) \
-    STMT_START {                                                       \
-       if (UNLIKELY(PL_tmps_ix + (n) >= PL_tmps_max))                  \
-           tmps_grow(n);                                               \
+    STMT_START {                                               \
+       SSize_t eMiX = PL_tmps_ix + (n);                        \
+       if (UNLIKELY(eMiX >= PL_tmps_max))                      \
+           (void)Perl_tmps_grow_p(aTHX_ eMiX);                 \
     } STMT_END
 
 #define AMGf_noright   1
@@ -404,6 +405,7 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 #define AMGf_numeric   0x10    /* for Perl_try_amagic_bin */
 #define AMGf_set       0x20    /* for Perl_try_amagic_bin */
 #define AMGf_want_list 0x40
+#define AMGf_numarg    0x80
 
 
 /* do SvGETMAGIC on the stack args before checking for overload */
@@ -438,7 +440,7 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
         {                                                      \
            SPAGAIN;                                            \
             if (gimme == G_VOID) {                              \
-                (void)POPs; /* XXX ??? */                       \
+                NOOP;                                           \
             }                                                   \
             else if (gimme == G_ARRAY) {                       \
                 SSize_t i;                                      \
@@ -480,15 +482,6 @@ Does not use C<TARG>.  See also C<XPUSHu>, C<mPUSHu> and C<PUSHu>.
 
 
 #define opASSIGN (PL_op->op_flags & OPf_STACKED)
-#define SETsv(sv)      STMT_START {                                    \
-               if (opASSIGN || (SvFLAGS(TARG) & SVs_PADMY))            \
-                  { sv_setsv(TARG, (sv)); SETTARG; }                   \
-               else SETs(sv); } STMT_END
-
-#define SETsvUN(sv)    STMT_START {                                    \
-               if (SvFLAGS(TARG) & SVs_PADMY)          \
-                  { sv_setsv(TARG, (sv)); SETTARG; }                   \
-               else SETs(sv); } STMT_END
 
 /*
 =for apidoc mU||LVRET