aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2019-01-07 14:40:51 +0100
committerGitHub <[email protected]>2019-01-07 14:40:51 +0100
commit3db7e967cf21af1f42febff4293274b84c7bd6b4 (patch)
tree346ee643baaa95f78288a6a74378f2e3ce2624d0 /erts/emulator/beam/ops.tab
parent3f5c2d32d325668534beedea7d7b7accf0b30066 (diff)
parent12f831fd482b5677aff5529374b55c73757f5246 (diff)
downloadotp-3db7e967cf21af1f42febff4293274b84c7bd6b4.tar.gz
otp-3db7e967cf21af1f42febff4293274b84c7bd6b4.tar.bz2
otp-3db7e967cf21af1f42febff4293274b84c7bd6b4.zip
Merge pull request #2059 from michalmuskala/mm/bif-microops
Use microops for BIFs
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab32
1 files changed, 16 insertions, 16 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index cb414143fc..ee99c9e563 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1002,11 +1002,11 @@ bif1 Fail Bif=u$bif:erlang:get/1 Src=s Dst=d => gen_get(Src, Dst)
bif2 Jump=j u$bif:erlang:element/2 S1=s S2=xy Dst=d => gen_element(Jump, S1, S2, Dst)
-bif1 p Bif S1 Dst => i_bif1_body Bif S1 Dst
-bif1 Fail=f Bif S1 Dst => i_bif1 Fail Bif S1 Dst
+bif1 p Bif S1 Dst => i_bif1_body S1 Bif Dst
+bif1 Fail=f Bif S1 Dst => i_bif1 S1 Fail Bif Dst
-bif2 p Bif S1 S2 Dst => i_bif2_body Bif S1 S2 Dst
-bif2 Fail=f Bif S1 S2 Dst => i_bif2 Fail Bif S1 S2 Dst
+bif2 p Bif S1 S2 Dst => i_bif2_body S2 S1 Bif Dst
+bif2 Fail=f Bif S1 S2 Dst => i_bif2 S2 S1 Fail Bif Dst
i_get_hash c I d
i_get s d
@@ -1024,12 +1024,12 @@ i_fast_element xy j? I d
i_element xy j? s d
-i_bif1 f? b s d
-i_bif1_body b s d
-i_bif2 f? b s s d
-i_bif2_body b s s d
-i_bif3 f? b s s s d
-i_bif3_body b s s s d
+i_bif1 s f? b d
+i_bif1_body s b d
+i_bif2 s s f? b d
+i_bif2_body s s b d
+i_bif3 s s s f? b d
+i_bif3_body s s s b d
#
# Internal calls.
@@ -1601,14 +1601,14 @@ i_length j? t d
#
# Guard BIFs.
#
-gc_bif1 p Live Bif Src Dst => i_bif1_body Bif Src Dst
-gc_bif1 Fail=f Live Bif Src Dst => i_bif1 Fail Bif Src Dst
+gc_bif1 p Live Bif Src Dst => i_bif1_body Src Bif Dst
+gc_bif1 Fail=f Live Bif Src Dst => i_bif1 Src Fail Bif Dst
-gc_bif2 p Live Bif S1 S2 Dst => i_bif2_body Bif S1 S2 Dst
-gc_bif2 Fail=f Live Bif S1 S2 Dst => i_bif2 Fail Bif S1 S2 Dst
+gc_bif2 p Live Bif S1 S2 Dst => i_bif2_body S2 S1 Bif Dst
+gc_bif2 Fail=f Live Bif S1 S2 Dst => i_bif2 S2 S1 Fail Bif Dst
-gc_bif3 p Live Bif S1 S2 S3 Dst => i_bif3_body Bif S1 S2 S3 Dst
-gc_bif3 Fail=f Live Bif S1 S2 S3 Dst => i_bif3 Fail Bif S1 S2 S3 Dst
+gc_bif3 p Live Bif S1 S2 S3 Dst => i_bif3_body S3 S2 S1 Bif Dst
+gc_bif3 Fail=f Live Bif S1 S2 S3 Dst => i_bif3 S3 S2 S1 Fail Bif Dst
#
# The following instruction is specially handled in beam_load.c