aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_load.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2011-08-05 14:49:34 +0200
committerBjörn Gustavsson <bjorn@erlang.org>2011-10-11 11:36:36 +0200
commitcac63dbe2da001e050be70664cb6421cdea33430 (patch)
tree72ed4bce8dc8a0562198be1f0d7423f1abba1253 /erts/emulator/beam/beam_load.c
parent207436c383995dc6fcea1953f9188f8df280bd81 (diff)
downloadotp-cac63dbe2da001e050be70664cb6421cdea33430.tar.gz
otp-cac63dbe2da001e050be70664cb6421cdea33430.tar.bz2
otp-cac63dbe2da001e050be70664cb6421cdea33430.zip
Merge 'new_instr' and 'store_op' into 'new_instr'
Since the 'new_instr' instruction always occurs before the 'store_op' instruction, we can merge the instructions into one. Also, there is no need to include the arity of the BEAM instruction as an operand, since the arity can be looked up based on the opcode.
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r--erts/emulator/beam/beam_load.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c
index 0d639572e0..551bc399e7 100644
--- a/erts/emulator/beam/beam_load.c
+++ b/erts/emulator/beam/beam_load.c
@@ -4505,12 +4505,10 @@ transform_engine(LoaderState* st)
NEW_GENOP(st, instr);
instr->next = st->genop;
st->genop = instr;
+ instr->op = op = *pc++;
+ instr->arity = gen_opc[op].arity;
ap = 0;
break;
- case TOP_store_op:
- instr->op = *pc++;
- instr->arity = *pc++;
- break;
case TOP_store_type:
i = *pc++;
instr->a[ap].type = i;