aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-06-29 10:19:53 +0200
committerBjörn Gustavsson <[email protected]>2015-07-03 14:34:58 +0200
commit0a4750f91c837d6a68b5a9ad58ffb1fe52b67d71 (patch)
treed3f61fa9a539ed03a7dcc781678ed4c4c4250c21
parent5e83d2ae89c731bd7e4c32b550150336008d2974 (diff)
downloadotp-0a4750f91c837d6a68b5a9ad58ffb1fe52b67d71.tar.gz
otp-0a4750f91c837d6a68b5a9ad58ffb1fe52b67d71.tar.bz2
otp-0a4750f91c837d6a68b5a9ad58ffb1fe52b67d71.zip
beam_makeops: Eliminate unnecessary masking when packing 3 operands
When packing 3 operands into one word, there would be an unnecessary mask operation when extracting the last operand.
-rwxr-xr-xerts/emulator/utils/beam_makeops2
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/utils/beam_makeops b/erts/emulator/utils/beam_makeops
index e61096355c..974b29e9d8 100755
--- a/erts/emulator/utils/beam_makeops
+++ b/erts/emulator/utils/beam_makeops
@@ -48,7 +48,7 @@ $pack_shift[4] = ['0', 'BEAM_LOOSE_SHIFT', # Only for 64 bit wordsize
'(3*BEAM_LOOSE_SHIFT)'];
$pack_mask[2] = ['BEAM_LOOSE_MASK', $WHOLE_WORD];
-$pack_mask[3] = ['BEAM_TIGHT_MASK', 'BEAM_TIGHT_MASK', 'BEAM_TIGHT_MASK'];
+$pack_mask[3] = ['BEAM_TIGHT_MASK', 'BEAM_TIGHT_MASK', $WHOLE_WORD];
$pack_mask[4] = ['BEAM_LOOSE_MASK', # Only for 64 bit wordsize
'BEAM_LOOSE_MASK',
'BEAM_LOOSE_MASK',