more cleanup: avoid unused knowledge of "file GV" notion in CV and GV
[p5sagit/p5-mst-13.2.git] / pp.h
diff --git a/pp.h b/pp.h
index adf3cc9..ec701f3 100644 (file)
--- a/pp.h
+++ b/pp.h
 #define POPi           ((IV)SvIVx(POPs))
 #define POPu           ((UV)SvUVx(POPs))
 #define POPl           ((long)SvIVx(POPs))
+#define POPul          ((unsigned long)SvIVx(POPs))
+#ifdef HAS_QUAD
+#define POPq           ((Quad_t)SvIVx(POPs))
+#define POPuq          ((Uquad_t)SvUVx(POPs))
+#endif
 
 #define TOPs           (*sp)
 #define TOPp           (SvPV(TOPs, PL_na))             /* deprecated */
 #define TOPi           ((IV)SvIV(TOPs))
 #define TOPu           ((UV)SvUV(TOPs))
 #define TOPl           ((long)SvIV(TOPs))
+#define TOPul          ((unsigned long)SvUV(TOPs))
+#ifdef HAS_QUAD
+#define TOPq           ((Quad_t)SvIV(TOPs))
+#define TOPuq          ((Uquad_t)SvUV(TOPs))
+#endif
 
 /* Go to some pains in the rare event that we must extend the stack. */
 #define EXTEND(p,n)    STMT_START { if (PL_stack_max - p < (n)) {              \
 #define dPOPiv         IV value = POPi
 #define dTOPuv         UV value = TOPu
 #define dPOPuv         UV value = POPu
+#ifdef HAS_QUAD
+#define dTOPqv         Quad_t value = TOPu
+#define dPOPqv         Quad_t value = POPu
+#define dTOPuqv                Uquad_t value = TOPuq
+#define dPOPuqv                Uquad_t value = POPuq
+#endif
 
 #define dPOPXssrl(X)   SV *right = POPs; SV *left = CAT2(X,s)
 #define dPOPXnnrl(X)   NV right = POPn; NV left = CAT2(X,n)
 #define dPOPTOPiirl    dPOPXiirl(TOP)
 #define dPOPTOPiirl_ul dPOPXiirl_ul(TOP)
 
-#define TOPIOKbin (SvIOK(TOPs) && SvIOK(*(sp-1)))
-#define tryIVIVbin(op) \
-       if (TOPIOKbin) { \
-               dPOPTOPiirl_ul; \
-               NV result = (NV)left op (NV)right; \
-               if (result >= (NV)IV_MIN && result <= (NV)IV_MAX) \
-                       SETi( left op right ); \
-               else \
-                       SETn( result ); \
-               RETURN; \
-       }
-
 #define RETPUSHYES     RETURNX(PUSHs(&PL_sv_yes))
 #define RETPUSHNO      RETURNX(PUSHs(&PL_sv_no))
 #define RETPUSHUNDEF   RETURNX(PUSHs(&PL_sv_undef))