aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorAnthony Ramine <[email protected]>2014-05-09 16:00:54 +0200
committerZandra Hird <[email protected]>2015-02-24 12:46:20 +0100
commit0ec91ff571518e199aac7a4da961a80c153483b9 (patch)
tree007240dc2af973c54d9c8ed605894c36157c4ecd /erts/emulator/beam
parent4dae7cd0c0fc15f051ac90d6e1c4b19d94a27128 (diff)
downloadotp-0ec91ff571518e199aac7a4da961a80c153483b9.tar.gz
otp-0ec91ff571518e199aac7a4da961a80c153483b9.tar.bz2
otp-0ec91ff571518e199aac7a4da961a80c153483b9.zip
Allow 4-ary BIFs
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r--erts/emulator/beam/beam_emu.c2
-rw-r--r--erts/emulator/beam/bif.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 3af7c43abf..2d6fad8ae6 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -3553,7 +3553,7 @@ get_map_elements_fail:
vbf = (BifFunction) Arg(0);
PROCESS_MAIN_CHK_LOCKS(c_p);
bif_nif_arity = I[-1];
- ASSERT(bif_nif_arity <= 3);
+ ASSERT(bif_nif_arity <= 4);
ERTS_SMP_UNREQ_PROC_MAIN_LOCK(c_p);
reg[0] = r(0);
{
diff --git a/erts/emulator/beam/bif.h b/erts/emulator/beam/bif.h
index 7b69b39511..837cb017ac 100644
--- a/erts/emulator/beam/bif.h
+++ b/erts/emulator/beam/bif.h
@@ -30,10 +30,12 @@ extern Export* erts_format_cpu_topology_trap;
#define BIF_ALIST_1 Process* A__p, Eterm* BIF__ARGS
#define BIF_ALIST_2 Process* A__p, Eterm* BIF__ARGS
#define BIF_ALIST_3 Process* A__p, Eterm* BIF__ARGS
+#define BIF_ALIST_4 Process* A__p, Eterm* BIF__ARGS
#define BIF_ARG_1 (BIF__ARGS[0])
#define BIF_ARG_2 (BIF__ARGS[1])
#define BIF_ARG_3 (BIF__ARGS[2])
+#define BIF_ARG_4 (BIF__ARGS[3])
#define ERTS_IS_PROC_OUT_OF_REDS(p) \
((p)->fcalls > 0 \