diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-02-20 00:02:53 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-02-20 00:02:53 +0000 |
commit | 5b4563c8796d609e1b00a7e3af7630b7fee611ae (patch) | |
tree | 1dc3c5116c37a52c97d257795882c0c9a5238ba9 | |
parent | e7209bcaa7a0208031a134e012ecbac81c118588 (diff) | |
download | perl-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.h | 25 | ||||
-rw-r--r-- | ext/Devel/Peek/t/Peek.t | 4 |
2 files changed, 15 insertions, 14 deletions
@@ -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\\)'); |