summaryrefslogtreecommitdiff
path: root/opcode.h
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2021-12-03 21:23:00 +0000
committerPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2021-12-08 00:05:10 +0000
commitd2817bd771b5f4a948f1a5395803b7d795453c07 (patch)
tree4dcff879f83d688917b30fd34b9d4bd35238c03b /opcode.h
parentb2d0d92ba8eefbcb5afd8e04a8f263b4938f26ef (diff)
downloadperl-d2817bd771b5f4a948f1a5395803b7d795453c07.tar.gz
Add builtin::blessed, refaddr and reftype
Diffstat (limited to 'opcode.h')
-rw-r--r--opcode.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/opcode.h b/opcode.h
index 269030388c..9ea8ef142e 100644
--- a/opcode.h
+++ b/opcode.h
@@ -558,6 +558,9 @@ EXTCONST char* const PL_op_name[] = {
"isweak",
"weaken",
"unweaken",
+ "blessed",
+ "refaddr",
+ "reftype",
"freed",
};
#endif
@@ -975,6 +978,9 @@ EXTCONST char* const PL_op_desc[] = {
"weakref type test",
"reference weaken",
"reference unweaken",
+ "blessed",
+ "refaddr",
+ "reftype",
"freed op",
};
#endif
@@ -1395,6 +1401,9 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_isweak,
Perl_pp_weaken,
Perl_pp_unweaken,
+ Perl_pp_blessed,
+ Perl_pp_refaddr,
+ Perl_pp_reftype,
}
#endif
;
@@ -1811,6 +1820,9 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* isweak */
Perl_ck_null, /* weaken */
Perl_ck_null, /* unweaken */
+ Perl_ck_null, /* blessed */
+ Perl_ck_null, /* refaddr */
+ Perl_ck_null, /* reftype */
}
#endif
;
@@ -2228,6 +2240,9 @@ EXTCONST U32 PL_opargs[] = {
0x0000011e, /* isweak */
0x00000100, /* weaken */
0x00000100, /* unweaken */
+ 0x0000011e, /* blessed */
+ 0x0000011e, /* refaddr */
+ 0x0000011e, /* reftype */
};
#endif
@@ -2902,6 +2917,9 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
75, /* isweak */
0, /* weaken */
0, /* unweaken */
+ 75, /* blessed */
+ 75, /* refaddr */
+ 75, /* reftype */
};
@@ -2941,7 +2959,7 @@ EXTCONST U16 PL_op_private_bitdefs[] = {
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 */
+ 0x4530, 0x0003, /* chomp, schomp, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, ord, chr, chroot, rmdir, isbool, isweak, blessed, 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 */
@@ -3409,6 +3427,9 @@ EXTCONST U8 PL_op_private_valid[] = {
/* ISWEAK */ (OPpARG1_MASK|OPpTARGET_MY),
/* WEAKEN */ (OPpARG1_MASK),
/* UNWEAKEN */ (OPpARG1_MASK),
+ /* BLESSED */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* REFADDR */ (OPpARG1_MASK|OPpTARGET_MY),
+ /* REFTYPE */ (OPpARG1_MASK|OPpTARGET_MY),
};