aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/utils/beam_makeops
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2011-08-05 14:49:34 +0200
committerBjörn Gustavsson <[email protected]>2011-10-11 11:36:36 +0200
commitcac63dbe2da001e050be70664cb6421cdea33430 (patch)
tree72ed4bce8dc8a0562198be1f0d7423f1abba1253 /erts/emulator/utils/beam_makeops
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/utils/beam_makeops')
-rwxr-xr-xerts/emulator/utils/beam_makeops5
1 files changed, 2 insertions, 3 deletions
diff --git a/erts/emulator/utils/beam_makeops b/erts/emulator/utils/beam_makeops
index 2272a941bb..d71531a1f1 100755
--- a/erts/emulator/utils/beam_makeops
+++ b/erts/emulator/utils/beam_makeops
@@ -1590,7 +1590,7 @@ sub tr_gen_to {
push(@args, "var+$var{$var}");
}
}
- pop(@code); # Get rid of 'next_instr'
+ pop(@code); # Get rid of 'commit' instruction
push(@code, make_op("$name()", 'call_end', scalar(@call_table)));
push(@call_table, [$name, @args]);
last;
@@ -1609,8 +1609,7 @@ sub tr_gen_to {
# Create code to build the generic instruction.
#
- push(@code, &make_op('', 'new_instr'));
- push(@code, &make_op("$name/$arity", 'store_op', $opnum, $arity));
+ push(@code, make_op("$name/$arity", 'new_instr', $opnum));
foreach $op (@ops) {
my($var, $type, $type_val) = @$op;