summaryrefslogtreecommitdiff
path: root/opcode.h
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2021-12-03 22:42:26 +0000
committerPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2021-12-08 00:05:15 +0000
commit1dd1944b9e9757d121aa50a03029666ee4a07440 (patch)
tree1e9081530da05cb117aca1104907409d137b80ea /opcode.h
parentd2817bd771b5f4a948f1a5395803b7d795453c07 (diff)
downloadperl-1dd1944b9e9757d121aa50a03029666ee4a07440.tar.gz
Give blessed() the same TRUEBOOL optimisation that ref() has in boolean contexts
Diffstat (limited to 'opcode.h')
-rw-r--r--opcode.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/opcode.h b/opcode.h
index 9ea8ef142e..0d064864b2 100644
--- a/opcode.h
+++ b/opcode.h
@@ -2240,7 +2240,7 @@ EXTCONST U32 PL_opargs[] = {
0x0000011e, /* isweak */
0x00000100, /* weaken */
0x00000100, /* unweaken */
- 0x0000011e, /* blessed */
+ 0x00000106, /* blessed */
0x0000011e, /* refaddr */
0x0000011e, /* reftype */
};
@@ -2917,7 +2917,7 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
75, /* isweak */
0, /* weaken */
0, /* unweaken */
- 75, /* blessed */
+ 49, /* blessed */
75, /* refaddr */
75, /* reftype */
@@ -2952,14 +2952,14 @@ EXTCONST U16 PL_op_private_bitdefs[] = {
0x2fdc, 0x3658, 0x03d6, 0x4184, 0x0003, /* rv2sv */
0x30cc, 0x0003, /* av2arylen, akeys, values, keys */
0x339c, 0x1078, 0x0dd4, 0x014c, 0x4488, 0x4184, 0x0003, /* rv2cv */
- 0x05b4, 0x0650, 0x0003, /* ref */
+ 0x05b4, 0x0650, 0x0003, /* ref, blessed */
0x018f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */
0x383c, 0x3758, 0x2894, 0x27d0, 0x0003, /* backtick */
0x05b5, /* subst */
0x117c, 0x21b8, 0x09b4, 0x3fec, 0x2548, 0x4764, 0x07c1, /* trans, transr */
0x0fbc, 0x04d8, 0x0067, /* sassign */
0x0c78, 0x0b74, 0x0a70, 0x30cc, 0x05a8, 0x0067, /* aassign */
- 0x4530, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, isbool, isweak, blessed, refaddr, reftype */
+ 0x4530, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, isbool, isweak, refaddr, reftype */
0x05b4, 0x30cc, 0x0003, /* pos */
0x4530, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract */
0x1538, 0x0067, /* repeat */
@@ -3427,7 +3427,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* ISWEAK */ (OPpARG1_MASK|OPpTARGET_MY),
/* WEAKEN */ (OPpARG1_MASK),
/* UNWEAKEN */ (OPpARG1_MASK),
- /* BLESSED */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* BLESSED */ (OPpARG1_MASK|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL),
/* REFADDR */ (OPpARG1_MASK|OPpTARGET_MY),
/* REFTYPE */ (OPpARG1_MASK|OPpTARGET_MY),