Change $=, $., $*, $%, and $- to be IVs instead of longs.
Jarkko Hietaniemi [Thu, 29 Nov 2001 01:22:02 +0000 (01:22 +0000)]
p4raw-id: //depot/perl@13346

bytecode.pl
ext/B/B/Asmdata.pm
ext/ByteLoader/byterun.c
sv.h

index 068d1ee..0d04688 100644 (file)
@@ -312,11 +312,11 @@ xlv_type  LvTYPE(bstate->bs_sv)                   char
 xbm_useful     BmUSEFUL(bstate->bs_sv)                 I32
 xbm_previous   BmPREVIOUS(bstate->bs_sv)               U16
 xbm_rare       BmRARE(bstate->bs_sv)                   U8
-xfm_lines      FmLINES(bstate->bs_sv)                  I32
-xio_lines      IoLINES(bstate->bs_sv)                  long
-xio_page       IoPAGE(bstate->bs_sv)                   long
-xio_page_len   IoPAGE_LEN(bstate->bs_sv)               long
-xio_lines_left IoLINES_LEFT(bstate->bs_sv)             long
+xfm_lines      FmLINES(bstate->bs_sv)                  IV
+xio_lines      IoLINES(bstate->bs_sv)                  IV
+xio_page       IoPAGE(bstate->bs_sv)                   IV
+xio_page_len   IoPAGE_LEN(bstate->bs_sv)               IV
+xio_lines_left IoLINES_LEFT(bstate->bs_sv)             IV
 xio_top_name   IoTOP_NAME(bstate->bs_sv)               pvcontents
 xio_top_gv     *(SV**)&IoTOP_GV(bstate->bs_sv)         svindex
 xio_fmt_name   IoFMT_NAME(bstate->bs_sv)               pvcontents
index 607071f..b180a48 100644 (file)
@@ -54,11 +54,11 @@ $insn_data{xlv_type} = [26, \&PUT_U8, "GET_U8"];
 $insn_data{xbm_useful} = [27, \&PUT_I32, "GET_I32"];
 $insn_data{xbm_previous} = [28, \&PUT_U16, "GET_U16"];
 $insn_data{xbm_rare} = [29, \&PUT_U8, "GET_U8"];
-$insn_data{xfm_lines} = [30, \&PUT_I32, "GET_I32"];
-$insn_data{xio_lines} = [31, \&PUT_I32, "GET_I32"];
-$insn_data{xio_page} = [32, \&PUT_I32, "GET_I32"];
-$insn_data{xio_page_len} = [33, \&PUT_I32, "GET_I32"];
-$insn_data{xio_lines_left} = [34, \&PUT_I32, "GET_I32"];
+$insn_data{xfm_lines} = [30, \&PUT_IV, "GET_IV"];
+$insn_data{xio_lines} = [31, \&PUT_IV, "GET_IV"];
+$insn_data{xio_page} = [32, \&PUT_IV, "GET_IV"];
+$insn_data{xio_page_len} = [33, \&PUT_IV, "GET_IV"];
+$insn_data{xio_lines_left} = [34, \&PUT_IV, "GET_IV"];
 $insn_data{xio_top_name} = [36, \&PUT_pvcontents, "GET_pvcontents"];
 $insn_data{xio_top_gv} = [37, \&PUT_svindex, "GET_svindex"];
 $insn_data{xio_fmt_name} = [38, \&PUT_pvcontents, "GET_pvcontents"];
index 94d7ce8..3d680cd 100644 (file)
@@ -273,36 +273,36 @@ byterun(pTHX_ register struct byteloader_state *bstate)
            }
          case INSN_XFM_LINES:          /* 30 */
            {
-               I32 arg;
-               BGET_I32(arg);
+               IV arg;
+               BGET_IV(arg);
                FmLINES(bstate->bs_sv) = arg;
                break;
            }
          case INSN_XIO_LINES:          /* 31 */
            {
-               long arg;
-               BGET_I32(arg);
+               IV arg;
+               BGET_IV(arg);
                IoLINES(bstate->bs_sv) = arg;
                break;
            }
          case INSN_XIO_PAGE:           /* 32 */
            {
-               long arg;
-               BGET_I32(arg);
+               IV arg;
+               BGET_IV(arg);
                IoPAGE(bstate->bs_sv) = arg;
                break;
            }
          case INSN_XIO_PAGE_LEN:               /* 33 */
            {
-               long arg;
-               BGET_I32(arg);
+               IV arg;
+               BGET_IV(arg);
                IoPAGE_LEN(bstate->bs_sv) = arg;
                break;
            }
          case INSN_XIO_LINES_LEFT:             /* 34 */
            {
-               long arg;
-               BGET_I32(arg);
+               IV arg;
+               BGET_IV(arg);
                IoLINES_LEFT(bstate->bs_sv) = arg;
                break;
            }
diff --git a/sv.h b/sv.h
index 7bc11e9..a80989a 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -351,7 +351,7 @@ struct xpvfm {
 #endif /* USE_5005THREADS */
     cv_flags_t xcv_flags;
 
-    I32                xfm_lines;
+    IV         xfm_lines;
 };
 
 struct xpvio {
@@ -378,10 +378,10 @@ struct xpvio {
        DIR *   xiou_dirp;      /* for opendir, readdir, etc */
        void *  xiou_any;       /* for alignment */
     } xio_dirpu;
-    long       xio_lines;      /* $. */
-    long       xio_page;       /* $% */
-    long       xio_page_len;   /* $= */
-    long       xio_lines_left; /* $- */
+    IV         xio_lines;      /* $. */
+    IV         xio_page;       /* $% */
+    IV         xio_page_len;   /* $= */
+    IV         xio_lines_left; /* $- */
     char *     xio_top_name;   /* $^ */
     GV *       xio_top_gv;     /* $^ */
     char *     xio_fmt_name;   /* $~ */