Branch: Tag:


2014-10-02 17:57:02 by Per Hedbor <>

Added a simple append_mapping instruction.

Much like append_array, but for mappings. This speeds up the append
mapping benchmark by about (currently) 1000x.

However, that is somewhat misleading since the refs optimization is
not done currently since the wrong assignment operator ends up being

Even when that is fixed the speedup should is still more than 2x,

2021:    o_append_array(Pike_sp - *(--Pike_mark_sp));    });    + OPCODE0(F_APPEND_MAPPING, "append mapping", I_UPDATE_SP|I_UPDATE_M_SP, { +  o_append_mapping(Pike_sp - *(--Pike_mark_sp)); +  }); +    OPCODE2(F_LOCAL_LOCAL_INDEX, "local[local]", I_UPDATE_SP, {    LOCAL_VAR(struct svalue *s);    s = Pike_fp->locals + arg1;