aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-09-10 09:52:20 +0200
committerBjörn Gustavsson <[email protected]>2017-09-11 15:23:16 +0200
commit08fa79f049a9038fbcf5a40cedf86372f100080b (patch)
tree7a9ba5b8f31aedffccd26b27275e8ee578b45323 /erts/emulator/beam/ops.tab
parent0c99036e21464c643dabcf285c9e122c57958192 (diff)
downloadotp-08fa79f049a9038fbcf5a40cedf86372f100080b.tar.gz
otp-08fa79f049a9038fbcf5a40cedf86372f100080b.tar.bz2
otp-08fa79f049a9038fbcf5a40cedf86372f100080b.zip
Change operand type from 's' to 'S' for a few instructions
'S' is slightly more efficient. Using 'S' may also enable more packing.
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab10
1 files changed, 6 insertions, 4 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index d64f6f2cfc..14d2d39e0e 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -698,7 +698,7 @@ is_boolean f xy
is_function2 Fail=f acq Arity => jump Fail
is_function2 Fail=f Fun a => jump Fail
-is_function2 f s s
+is_function2 f S s
# Allocating & initializing.
allocate Need Regs | init Y => allocate_init Need Regs Y
@@ -1153,7 +1153,7 @@ bs_skip_utf32 Fail=f Ms=x Live=u Flags=u => \
bs_get_integer2 Fail Ms Live i=32 u=1 Flags x | \
i_bs_validate_unicode_retract Fail x Ms
-i_bs_validate_unicode_retract j s s
+i_bs_validate_unicode_retract j s S
%hot
#
@@ -1212,7 +1212,7 @@ bs_private_append Fail Size Unit Bin Flags Dst => \
bs_init_writable
i_bs_append j I t t s x
-i_bs_private_append j t s s x
+i_bs_private_append j t s S x
#
# Storing integers into binaries.
@@ -1498,7 +1498,9 @@ i_band s s j t d
i_bor j I s s d
i_bxor j I s s d
-i_int_bnot j s t d
+i_int_bnot Fail Src=c Live Dst => move Src x | i_int_bnot Fail x Live Dst
+
+i_int_bnot j S t d
#
# Old guard BIFs that creates heap fragments are no longer allowed.