summaryrefslogtreecommitdiff
path: root/opcode.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2014-11-08 10:12:30 -0800
committerFather Chrysostomos <sprout@cpan.org>2014-11-08 11:44:13 -0800
commit9e319cc4fd53e7fda8d24a3e32cedcd89cb2f66c (patch)
tree3214664f042fe0b337bb3b51d8263fbf170431d5 /opcode.h
parente87de4ab85d86a0df65940af0f52ef44b70e0e50 (diff)
downloadperl-9e319cc4fd53e7fda8d24a3e32cedcd89cb2f66c.tar.gz
Allow OPpTARGET_MY on non-integer postdec/inc
I don’t know why this was not done to begin with. The previous two commits fixed the only outstanding problems I am aware of.
Diffstat (limited to 'opcode.h')
-rw-r--r--opcode.h606
1 files changed, 303 insertions, 303 deletions
diff --git a/opcode.h b/opcode.h
index 854c8d20e7..c7ab9b6734 100644
--- a/opcode.h
+++ b/opcode.h
@@ -1791,9 +1791,9 @@ EXTCONST U32 PL_opargs[] = {
0x00001144, /* i_preinc */
0x00001164, /* predec */
0x00001144, /* i_predec */
- 0x0000116c, /* postinc */
+ 0x0000117c, /* postinc */
0x0000115c, /* i_postinc */
- 0x0000116c, /* postdec */
+ 0x0000117c, /* postdec */
0x0000115c, /* i_postdec */
0x0001121e, /* pow */
0x0001123e, /* multiply */
@@ -2417,337 +2417,337 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
105, /* predec */
106, /* i_predec */
107, /* postinc */
- 108, /* i_postinc */
- 110, /* postdec */
- 111, /* i_postdec */
- 113, /* pow */
- 115, /* multiply */
- 117, /* i_multiply */
- 119, /* divide */
- 121, /* i_divide */
- 123, /* modulo */
- 125, /* i_modulo */
- 127, /* repeat */
- 130, /* add */
- 132, /* i_add */
- 134, /* subtract */
- 136, /* i_subtract */
- 138, /* concat */
- 140, /* stringify */
- 142, /* left_shift */
- 144, /* right_shift */
- 146, /* lt */
- 147, /* i_lt */
- 148, /* gt */
- 149, /* i_gt */
- 150, /* le */
- 151, /* i_le */
- 152, /* ge */
- 153, /* i_ge */
- 154, /* eq */
- 155, /* i_eq */
- 156, /* ne */
- 157, /* i_ne */
- 158, /* ncmp */
- 159, /* i_ncmp */
- 160, /* slt */
- 161, /* sgt */
- 162, /* sle */
- 163, /* sge */
- 164, /* seq */
- 165, /* sne */
- 166, /* scmp */
- 167, /* bit_and */
- 168, /* bit_xor */
- 169, /* bit_or */
- 170, /* negate */
- 171, /* i_negate */
- 173, /* not */
- 174, /* complement */
- 175, /* smartmatch */
- 176, /* atan2 */
- 178, /* sin */
- 180, /* cos */
- 182, /* rand */
- 184, /* srand */
- 186, /* exp */
- 188, /* log */
- 190, /* sqrt */
- 192, /* int */
- 194, /* hex */
- 196, /* oct */
- 198, /* abs */
- 200, /* length */
- 202, /* substr */
- 205, /* vec */
- 208, /* index */
- 210, /* rindex */
- 212, /* sprintf */
- 213, /* formline */
- 214, /* ord */
- 216, /* chr */
- 218, /* crypt */
- 220, /* ucfirst */
- 221, /* lcfirst */
- 222, /* uc */
- 223, /* lc */
- 224, /* quotemeta */
- 225, /* rv2av */
- 231, /* aelemfast */
- 232, /* aelemfast_lex */
- 233, /* aelem */
- 238, /* aslice */
- 241, /* kvaslice */
- 242, /* aeach */
- 243, /* akeys */
- 244, /* avalues */
- 245, /* each */
- 246, /* values */
- 247, /* keys */
- 249, /* delete */
- 252, /* exists */
- 254, /* rv2hv */
- 262, /* helem */
- 267, /* hslice */
- 270, /* kvhslice */
- 271, /* unpack */
- 272, /* pack */
- 273, /* split */
- 276, /* join */
- 277, /* list */
- 279, /* lslice */
- 280, /* anonlist */
- 281, /* anonhash */
- 282, /* splice */
- 283, /* push */
- 285, /* pop */
- 286, /* shift */
- 287, /* unshift */
- 289, /* sort */
- 296, /* reverse */
- 298, /* grepstart */
- 299, /* grepwhile */
- 301, /* mapstart */
- 302, /* mapwhile */
- 304, /* range */
- 305, /* flip */
- 307, /* flop */
- 309, /* and */
- 310, /* or */
- 311, /* xor */
- 312, /* dor */
- 313, /* cond_expr */
- 315, /* andassign */
- 316, /* orassign */
- 317, /* dorassign */
- 318, /* method */
- 319, /* entersub */
- 326, /* leavesub */
- 328, /* leavesublv */
- 330, /* caller */
- 332, /* warn */
- 333, /* die */
- 334, /* reset */
+ 109, /* i_postinc */
+ 111, /* postdec */
+ 113, /* i_postdec */
+ 115, /* pow */
+ 117, /* multiply */
+ 119, /* i_multiply */
+ 121, /* divide */
+ 123, /* i_divide */
+ 125, /* modulo */
+ 127, /* i_modulo */
+ 129, /* repeat */
+ 132, /* add */
+ 134, /* i_add */
+ 136, /* subtract */
+ 138, /* i_subtract */
+ 140, /* concat */
+ 142, /* stringify */
+ 144, /* left_shift */
+ 146, /* right_shift */
+ 148, /* lt */
+ 149, /* i_lt */
+ 150, /* gt */
+ 151, /* i_gt */
+ 152, /* le */
+ 153, /* i_le */
+ 154, /* ge */
+ 155, /* i_ge */
+ 156, /* eq */
+ 157, /* i_eq */
+ 158, /* ne */
+ 159, /* i_ne */
+ 160, /* ncmp */
+ 161, /* i_ncmp */
+ 162, /* slt */
+ 163, /* sgt */
+ 164, /* sle */
+ 165, /* sge */
+ 166, /* seq */
+ 167, /* sne */
+ 168, /* scmp */
+ 169, /* bit_and */
+ 170, /* bit_xor */
+ 171, /* bit_or */
+ 172, /* negate */
+ 173, /* i_negate */
+ 175, /* not */
+ 176, /* complement */
+ 177, /* smartmatch */
+ 178, /* atan2 */
+ 180, /* sin */
+ 182, /* cos */
+ 184, /* rand */
+ 186, /* srand */
+ 188, /* exp */
+ 190, /* log */
+ 192, /* sqrt */
+ 194, /* int */
+ 196, /* hex */
+ 198, /* oct */
+ 200, /* abs */
+ 202, /* length */
+ 204, /* substr */
+ 207, /* vec */
+ 210, /* index */
+ 212, /* rindex */
+ 214, /* sprintf */
+ 215, /* formline */
+ 216, /* ord */
+ 218, /* chr */
+ 220, /* crypt */
+ 222, /* ucfirst */
+ 223, /* lcfirst */
+ 224, /* uc */
+ 225, /* lc */
+ 226, /* quotemeta */
+ 227, /* rv2av */
+ 233, /* aelemfast */
+ 234, /* aelemfast_lex */
+ 235, /* aelem */
+ 240, /* aslice */
+ 243, /* kvaslice */
+ 244, /* aeach */
+ 245, /* akeys */
+ 246, /* avalues */
+ 247, /* each */
+ 248, /* values */
+ 249, /* keys */
+ 251, /* delete */
+ 254, /* exists */
+ 256, /* rv2hv */
+ 264, /* helem */
+ 269, /* hslice */
+ 272, /* kvhslice */
+ 273, /* unpack */
+ 274, /* pack */
+ 275, /* split */
+ 278, /* join */
+ 279, /* list */
+ 281, /* lslice */
+ 282, /* anonlist */
+ 283, /* anonhash */
+ 284, /* splice */
+ 285, /* push */
+ 287, /* pop */
+ 288, /* shift */
+ 289, /* unshift */
+ 291, /* sort */
+ 298, /* reverse */
+ 300, /* grepstart */
+ 301, /* grepwhile */
+ 303, /* mapstart */
+ 304, /* mapwhile */
+ 306, /* range */
+ 307, /* flip */
+ 309, /* flop */
+ 311, /* and */
+ 312, /* or */
+ 313, /* xor */
+ 314, /* dor */
+ 315, /* cond_expr */
+ 317, /* andassign */
+ 318, /* orassign */
+ 319, /* dorassign */
+ 320, /* method */
+ 321, /* entersub */
+ 328, /* leavesub */
+ 330, /* leavesublv */
+ 332, /* caller */
+ 334, /* warn */
+ 335, /* die */
+ 336, /* reset */
-1, /* lineseq */
- 335, /* nextstate */
- 338, /* dbstate */
+ 337, /* nextstate */
+ 340, /* dbstate */
-1, /* unstack */
-1, /* enter */
- 341, /* leave */
+ 343, /* leave */
-1, /* scope */
- 343, /* enteriter */
- 347, /* iter */
+ 345, /* enteriter */
+ 349, /* iter */
-1, /* enterloop */
- 348, /* leaveloop */
+ 350, /* leaveloop */
-1, /* return */
- 350, /* last */
- 352, /* next */
- 354, /* redo */
- 356, /* dump */
- 358, /* goto */
- 360, /* exit */
- 361, /* method_named */
- 362, /* entergiven */
- 363, /* leavegiven */
- 364, /* enterwhen */
- 365, /* leavewhen */
+ 352, /* last */
+ 354, /* next */
+ 356, /* redo */
+ 358, /* dump */
+ 360, /* goto */
+ 362, /* exit */
+ 363, /* method_named */
+ 364, /* entergiven */
+ 365, /* leavegiven */
+ 366, /* enterwhen */
+ 367, /* leavewhen */
-1, /* break */
-1, /* continue */
- 366, /* open */
- 371, /* close */
- 372, /* pipe_op */
- 373, /* fileno */
- 374, /* umask */
- 375, /* binmode */
- 376, /* tie */
- 377, /* untie */
- 378, /* tied */
- 379, /* dbmopen */
- 380, /* dbmclose */
- 381, /* sselect */
- 382, /* select */
- 383, /* getc */
- 384, /* read */
- 385, /* enterwrite */
- 386, /* leavewrite */
+ 368, /* open */
+ 373, /* close */
+ 374, /* pipe_op */
+ 375, /* fileno */
+ 376, /* umask */
+ 377, /* binmode */
+ 378, /* tie */
+ 379, /* untie */
+ 380, /* tied */
+ 381, /* dbmopen */
+ 382, /* dbmclose */
+ 383, /* sselect */
+ 384, /* select */
+ 385, /* getc */
+ 386, /* read */
+ 387, /* enterwrite */
+ 388, /* leavewrite */
-1, /* prtf */
-1, /* print */
-1, /* say */
- 388, /* sysopen */
- 389, /* sysseek */
- 390, /* sysread */
- 391, /* syswrite */
- 392, /* eof */
- 393, /* tell */
- 394, /* seek */
- 395, /* truncate */
- 396, /* fcntl */
- 397, /* ioctl */
- 398, /* flock */
- 400, /* send */
- 401, /* recv */
- 402, /* socket */
- 403, /* sockpair */
- 404, /* bind */
- 405, /* connect */
- 406, /* listen */
- 407, /* accept */
- 408, /* shutdown */
- 409, /* gsockopt */
- 410, /* ssockopt */
- 411, /* getsockname */
- 412, /* getpeername */
- 413, /* lstat */
- 414, /* stat */
- 415, /* ftrread */
- 420, /* ftrwrite */
- 425, /* ftrexec */
- 430, /* fteread */
- 435, /* ftewrite */
- 440, /* fteexec */
- 445, /* ftis */
- 449, /* ftsize */
- 453, /* ftmtime */
- 457, /* ftatime */
- 461, /* ftctime */
- 465, /* ftrowned */
- 469, /* fteowned */
- 473, /* ftzero */
- 477, /* ftsock */
- 481, /* ftchr */
- 485, /* ftblk */
- 489, /* ftfile */
- 493, /* ftdir */
- 497, /* ftpipe */
- 501, /* ftsuid */
- 505, /* ftsgid */
- 509, /* ftsvtx */
- 513, /* ftlink */
- 517, /* fttty */
- 521, /* fttext */
- 525, /* ftbinary */
- 529, /* chdir */
- 531, /* chown */
- 533, /* chroot */
- 535, /* unlink */
- 537, /* chmod */
- 539, /* utime */
- 541, /* rename */
- 543, /* link */
- 545, /* symlink */
- 547, /* readlink */
- 548, /* mkdir */
- 550, /* rmdir */
- 552, /* open_dir */
- 553, /* readdir */
- 554, /* telldir */
- 555, /* seekdir */
- 556, /* rewinddir */
- 557, /* closedir */
+ 390, /* sysopen */
+ 391, /* sysseek */
+ 392, /* sysread */
+ 393, /* syswrite */
+ 394, /* eof */
+ 395, /* tell */
+ 396, /* seek */
+ 397, /* truncate */
+ 398, /* fcntl */
+ 399, /* ioctl */
+ 400, /* flock */
+ 402, /* send */
+ 403, /* recv */
+ 404, /* socket */
+ 405, /* sockpair */
+ 406, /* bind */
+ 407, /* connect */
+ 408, /* listen */
+ 409, /* accept */
+ 410, /* shutdown */
+ 411, /* gsockopt */
+ 412, /* ssockopt */
+ 413, /* getsockname */
+ 414, /* getpeername */
+ 415, /* lstat */
+ 416, /* stat */
+ 417, /* ftrread */
+ 422, /* ftrwrite */
+ 427, /* ftrexec */
+ 432, /* fteread */
+ 437, /* ftewrite */
+ 442, /* fteexec */
+ 447, /* ftis */
+ 451, /* ftsize */
+ 455, /* ftmtime */
+ 459, /* ftatime */
+ 463, /* ftctime */
+ 467, /* ftrowned */
+ 471, /* fteowned */
+ 475, /* ftzero */
+ 479, /* ftsock */
+ 483, /* ftchr */
+ 487, /* ftblk */
+ 491, /* ftfile */
+ 495, /* ftdir */
+ 499, /* ftpipe */
+ 503, /* ftsuid */
+ 507, /* ftsgid */
+ 511, /* ftsvtx */
+ 515, /* ftlink */
+ 519, /* fttty */
+ 523, /* fttext */
+ 527, /* ftbinary */
+ 531, /* chdir */
+ 533, /* chown */
+ 535, /* chroot */
+ 537, /* unlink */
+ 539, /* chmod */
+ 541, /* utime */
+ 543, /* rename */
+ 545, /* link */
+ 547, /* symlink */
+ 549, /* readlink */
+ 550, /* mkdir */
+ 552, /* rmdir */
+ 554, /* open_dir */
+ 555, /* readdir */
+ 556, /* telldir */
+ 557, /* seekdir */
+ 558, /* rewinddir */
+ 559, /* closedir */
-1, /* fork */
- 558, /* wait */
- 559, /* waitpid */
- 561, /* system */
- 563, /* exec */
- 565, /* kill */
- 567, /* getppid */
- 568, /* getpgrp */
- 570, /* setpgrp */
- 572, /* getpriority */
- 574, /* setpriority */
- 576, /* time */
+ 560, /* wait */
+ 561, /* waitpid */
+ 563, /* system */
+ 565, /* exec */
+ 567, /* kill */
+ 569, /* getppid */
+ 570, /* getpgrp */
+ 572, /* setpgrp */
+ 574, /* getpriority */
+ 576, /* setpriority */
+ 578, /* time */
-1, /* tms */
- 577, /* localtime */
- 578, /* gmtime */
- 579, /* alarm */
- 580, /* sleep */
- 582, /* shmget */
- 583, /* shmctl */
- 584, /* shmread */
- 585, /* shmwrite */
- 586, /* msgget */
- 587, /* msgctl */
- 588, /* msgsnd */
- 589, /* msgrcv */
- 590, /* semop */
- 591, /* semget */
- 592, /* semctl */
- 593, /* require */
- 594, /* dofile */
+ 579, /* localtime */
+ 580, /* gmtime */
+ 581, /* alarm */
+ 582, /* sleep */
+ 584, /* shmget */
+ 585, /* shmctl */
+ 586, /* shmread */
+ 587, /* shmwrite */
+ 588, /* msgget */
+ 589, /* msgctl */
+ 590, /* msgsnd */
+ 591, /* msgrcv */
+ 592, /* semop */
+ 593, /* semget */
+ 594, /* semctl */
+ 595, /* require */
+ 596, /* dofile */
-1, /* hintseval */
- 595, /* entereval */
- 601, /* leaveeval */
- 603, /* entertry */
+ 597, /* entereval */
+ 603, /* leaveeval */
+ 605, /* entertry */
-1, /* leavetry */
- 604, /* ghbyname */
- 605, /* ghbyaddr */
+ 606, /* ghbyname */
+ 607, /* ghbyaddr */
-1, /* ghostent */
- 606, /* gnbyname */
- 607, /* gnbyaddr */
+ 608, /* gnbyname */
+ 609, /* gnbyaddr */
-1, /* gnetent */
- 608, /* gpbyname */
- 609, /* gpbynumber */
+ 610, /* gpbyname */
+ 611, /* gpbynumber */
-1, /* gprotoent */
- 610, /* gsbyname */
- 611, /* gsbyport */
+ 612, /* gsbyname */
+ 613, /* gsbyport */
-1, /* gservent */
- 612, /* shostent */
- 613, /* snetent */
- 614, /* sprotoent */
- 615, /* sservent */
+ 614, /* shostent */
+ 615, /* snetent */
+ 616, /* sprotoent */
+ 617, /* sservent */
-1, /* ehostent */
-1, /* enetent */
-1, /* eprotoent */
-1, /* eservent */
- 616, /* gpwnam */
- 617, /* gpwuid */
+ 618, /* gpwnam */
+ 619, /* gpwuid */
-1, /* gpwent */
-1, /* spwent */
-1, /* epwent */
- 618, /* ggrnam */
- 619, /* ggrgid */
+ 620, /* ggrnam */
+ 621, /* ggrgid */
-1, /* ggrent */
-1, /* sgrent */
-1, /* egrent */
-1, /* getlogin */
- 620, /* syscall */
- 621, /* lock */
- 622, /* once */
+ 622, /* syscall */
+ 623, /* lock */
+ 624, /* once */
-1, /* custom */
- 623, /* reach */
- 624, /* rkeys */
- 626, /* rvalues */
- 627, /* coreargs */
- 631, /* runcv */
- 632, /* fc */
+ 625, /* reach */
+ 626, /* rkeys */
+ 628, /* rvalues */
+ 629, /* coreargs */
+ 633, /* runcv */
+ 634, /* fc */
-1, /* padcv */
-1, /* introcv */
-1, /* clonecv */
- 633, /* padrange */
- 635, /* refassign */
- 641, /* lvref */
- 647, /* lvrefslice */
- 648, /* lvavref */
+ 635, /* padrange */
+ 637, /* refassign */
+ 643, /* lvref */
+ 649, /* lvrefslice */
+ 650, /* lvavref */
};
@@ -2812,9 +2812,9 @@ EXTCONST U16 PL_op_private_bitdefs[] = {
/* i_preinc */ 0x0003,
/* predec */ 0x0003,
/* i_predec */ 0x0003,
- /* postinc */ 0x0003,
+ /* postinc */ 0x3d30, 0x0003,
/* i_postinc */ 0x3d30, 0x0003,
- /* postdec */ 0x0003,
+ /* postdec */ 0x3d30, 0x0003,
/* i_postdec */ 0x3d30, 0x0003,
/* pow */ 0x3d30, 0x0067,
/* multiply */ 0x3d30, 0x0067,
@@ -3169,9 +3169,9 @@ EXTCONST U8 PL_op_private_valid[] = {
/* I_PREINC */ (OPpARG1_MASK),
/* PREDEC */ (OPpARG1_MASK),
/* I_PREDEC */ (OPpARG1_MASK),
- /* POSTINC */ (OPpARG1_MASK),
+ /* POSTINC */ (OPpARG1_MASK|OPpTARGET_MY),
/* I_POSTINC */ (OPpARG1_MASK|OPpTARGET_MY),
- /* POSTDEC */ (OPpARG1_MASK),
+ /* POSTDEC */ (OPpARG1_MASK|OPpTARGET_MY),
/* I_POSTDEC */ (OPpARG1_MASK|OPpTARGET_MY),
/* POW */ (OPpARG2_MASK|OPpTARGET_MY),
/* MULTIPLY */ (OPpARG2_MASK|OPpTARGET_MY),