summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-02-20 00:02:53 +0000
committerNicholas Clark <nick@ccl4.org>2006-02-20 00:02:53 +0000
commit5b4563c8796d609e1b00a7e3af7630b7fee611ae (patch)
tree1dc3c5116c37a52c97d257795882c0c9a5238ba9
parente7209bcaa7a0208031a134e012ecbac81c118588 (diff)
downloadperl-5b4563c8796d609e1b00a7e3af7630b7fee611ae.tar.gz
Re-order CV flags to bring the 4 CVf_BUILTIN_ATTRS into adjacent bits,
and make other flag bits that are paired in the code adjacent. Will produce tighter code on ARM; might help on other platforms too. p4raw-id: //depot/perl@27234
-rw-r--r--cv.h25
-rw-r--r--ext/Devel/Peek/t/Peek.t4
2 files changed, 15 insertions, 14 deletions
diff --git a/cv.h b/cv.h
index ada2e4df3e..dd68f52a5f 100644
--- a/cv.h
+++ b/cv.h
@@ -74,22 +74,23 @@ Returns the stash of the CV.
#define CvFLAGS(sv) ((XPVCV*)SvANY(sv))->xcv_flags
#define CvOUTSIDE_SEQ(sv) ((XPVCV*)SvANY(sv))->xcv_outside_seq
-#define CVf_CLONE 0x0001 /* anon CV uses external lexicals */
-#define CVf_CLONED 0x0002 /* a clone of one of those */
-#define CVf_ANON 0x0004 /* CvGV() can't be trusted */
-#define CVf_OLDSTYLE 0x0008
-#define CVf_UNIQUE 0x0010 /* sub is only called once (eg PL_main_cv,
+#define CVf_METHOD 0x0001 /* CV is explicitly marked as a method */
+#define CVf_LOCKED 0x0002 /* CV locks itself or first arg on entry */
+#define CVf_LVALUE 0x0004 /* CV return value can be used as lvalue */
+#define CVf_ASSERTION 0x0008 /* CV called only when asserting */
+
+#define CVf_WEAKOUTSIDE 0x0010 /* CvOUTSIDE isn't ref counted */
+#define CVf_CLONE 0x0020 /* anon CV uses external lexicals */
+#define CVf_CLONED 0x0040 /* a clone of one of those */
+#define CVf_ANON 0x0080 /* CvGV() can't be trusted */
+#define CVf_UNIQUE 0x0100 /* sub is only called once (eg PL_main_cv,
* require, eval). Not to be confused
* with the GVf_UNIQUE flag associated
* with the :unique attribute */
-#define CVf_NODEBUG 0x0020 /* no DB::sub indirection for this CV
+#define CVf_NODEBUG 0x0200 /* no DB::sub indirection for this CV
(esp. useful for special XSUBs) */
-#define CVf_METHOD 0x0040 /* CV is explicitly marked as a method */
-#define CVf_LOCKED 0x0080 /* CV locks itself or first arg on entry */
-#define CVf_LVALUE 0x0100 /* CV return value can be used as lvalue */
-#define CVf_CONST 0x0200 /* inlinable sub */
-#define CVf_WEAKOUTSIDE 0x0400 /* CvOUTSIDE isn't ref counted */
-#define CVf_ASSERTION 0x0800 /* CV called only when asserting */
+#define CVf_CONST 0x0400 /* inlinable sub */
+#define CVf_OLDSTYLE 0x0800
/* This symbol for optimised communication between toke.c and op.c: */
#define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ASSERTION)
diff --git a/ext/Devel/Peek/t/Peek.t b/ext/Devel/Peek/t/Peek.t
index 5fcd108842..d7b51ee721 100644
--- a/ext/Devel/Peek/t/Peek.t
+++ b/ext/Devel/Peek/t/Peek.t
@@ -219,7 +219,7 @@ do_test(13,
DEPTH = 0
(?: MUTEXP = $ADDR
OWNER = $ADDR
-)? FLAGS = 0x404
+)? FLAGS = 0x90
OUTSIDE_SEQ = \\d+
PADLIST = $ADDR
PADNAME = $ADDR\\($ADDR\\) PAD = $ADDR\\($ADDR\\)
@@ -499,7 +499,7 @@ do_test(23,
DEPTH = 0
(?: MUTEXP = $ADDR
OWNER = $ADDR
-)? FLAGS = 0x200
+)? FLAGS = 0x400
OUTSIDE_SEQ = 0
PADLIST = 0x0
OUTSIDE = 0x0 \\(null\\)');