Treat pp_ncmp() and pp_scmp() as in #9366 (ROK).
Jarkko Hietaniemi [Mon, 26 Mar 2001 21:47:03 +0000 (21:47 +0000)]
TODO1: perlbench.
TODO2: le, lt, ge, gt?  Yech.

p4raw-id: //depot/perl@9368

pp.c

diff --git a/pp.c b/pp.c
index c40efef..3372428 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -1784,6 +1784,12 @@ PP(pp_ne)
 PP(pp_ncmp)
 {
     dSP; dTARGET; tryAMAGICbin(ncmp,0);
+#ifndef NV_PRESERVES_UV
+    if (SvROK(TOPs) && SvROK(TOPm1s)) {
+       SETs(boolSV(SvRV(TOPs) == SvRV(TOPm1s)));
+       RETURN;
+    }
+#endif
 #ifdef PERL_PRESERVE_IVUV
     /* Fortunately it seems NaN isn't IOK */
     SvIV_please(TOPs);
@@ -1964,6 +1970,12 @@ PP(pp_sne)
 PP(pp_scmp)
 {
     dSP; dTARGET;  tryAMAGICbin(scmp,0);
+#ifndef NV_PRESERVES_UV
+    if (SvROK(TOPs) && SvROK(TOPm1s)) {
+       SETs(boolSV(SvRV(TOPs) == SvRV(TOPm1s)));
+       RETURN;
+    }
+#endif
     {
       dPOPTOPssrl;
       int cmp = ((PL_op->op_private & OPpLOCALE)