From fc5ae97dc1cda30f5602828e5ee550c298f86a3f Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Sat, 8 Nov 2014 13:03:45 -0800 Subject: enterwrite is not OA_DANGEROUS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OA_DANGEROUS indicates that temporary copies may need to be made in list assignment, to handle things like: ($a, $b) = ($b, $a); In other words, an op type is flagged with OA_DANGEROUS if its return values could occur elsewhere on the stack. ‘write’ only ever returns a read-only true or false, so temp copies are not necessary for its sake. --- opcode.h | 2 +- regen/opcodes | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/opcode.h b/opcode.h index 561ada1d03..2f0061beb4 100644 --- a/opcode.h +++ b/opcode.h @@ -1963,7 +1963,7 @@ EXTCONST U32 PL_opargs[] = { 0x0000e40c, /* select */ 0x0000eb0c, /* getc */ 0x0917640d, /* read */ - 0x0000eb44, /* enterwrite */ + 0x0000eb04, /* enterwrite */ 0x00000100, /* leavewrite */ 0x0002e405, /* prtf */ 0x0002e405, /* print */ diff --git a/regen/opcodes b/regen/opcodes index 24a4aa8af7..c541d277c3 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -337,7 +337,7 @@ select select ck_select st@ F? getc getc ck_eof st% F? read read ck_fun imst@ F R S S? -enterwrite write ck_fun dis% F? +enterwrite write ck_fun is% F? leavewrite write exit ck_null 1 prtf printf ck_listiob ims@ F? L -- cgit v1.2.1