Branch: Tag:

2014-10-02

2014-10-02 17:57:02 by Per Hedbor <ph@opera.com>

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
used.

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

1149:    return 1;    }    +  case F_APPEND_MAPPING: { +  emit0(F_MARK); +  PUSH_CLEANUP_FRAME(do_pop_mark, 0); +  do_docode(CAR(n),DO_LVALUE); +  emit0(F_CONST0); /* Reserved for svalue. */ +  do_docode(CDR(n),0); +  emit0(F_APPEND_MAPPING); +  POP_AND_DONT_CLEANUP; +  return 1; +  } +     case '?':    {    INT32 *prev_switch_jumptable = current_switch.jumptable;