aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/hipe/hipe_native_bif.h
diff options
context:
space:
mode:
authorMagnus Lång <[email protected]>2015-10-23 15:31:28 +0200
committerMagnus Lång <[email protected]>2015-11-27 18:18:37 +0100
commitfd21382290333e6cc25728c1b6dd7c211ddfc297 (patch)
treee4a2056c903b510c396923574ab5a885fff3e4bd /erts/emulator/hipe/hipe_native_bif.h
parent6af385b22805cc2e8cee5c0a5f3506361afbe961 (diff)
downloadotp-fd21382290333e6cc25728c1b6dd7c211ddfc297.tar.gz
otp-fd21382290333e6cc25728c1b6dd7c211ddfc297.tar.bz2
otp-fd21382290333e6cc25728c1b6dd7c211ddfc297.zip
hipe: test unit size match in bs_append
This feature was previously missing and expressions such as <<<<1:1>>/binary>> would succeed construction when compiled with HiPE. A primop is_divisible is introduced to handle the case when the unit size is not a power of two.
Diffstat (limited to 'erts/emulator/hipe/hipe_native_bif.h')
-rw-r--r--erts/emulator/hipe/hipe_native_bif.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/hipe/hipe_native_bif.h b/erts/emulator/hipe/hipe_native_bif.h
index 0e1a75f7eb..55a0d3bb1b 100644
--- a/erts/emulator/hipe/hipe_native_bif.h
+++ b/erts/emulator/hipe/hipe_native_bif.h
@@ -68,6 +68,7 @@ AEXTERN(Eterm,nbif_bs_put_utf16le,(Process*,Eterm,byte*,unsigned int));
AEXTERN(Eterm,nbif_bs_get_utf16,(void));
AEXTERN(Eterm,nbif_bs_validate_unicode,(Process*,Eterm));
AEXTERN(Eterm,nbif_bs_validate_unicode_retract,(void));
+AEXTERN(void,nbif_is_divisible,(Process*,Uint,Uint));
AEXTERN(void,nbif_select_msg,(Process*));
AEXTERN(Eterm,nbif_cmp_2,(void));
@@ -93,6 +94,7 @@ BIF_RETTYPE hipe_bs_put_utf16le(BIF_ALIST_3);
BIF_RETTYPE hipe_bs_validate_unicode(BIF_ALIST_1);
struct erl_bin_match_buffer;
int hipe_bs_validate_unicode_retract(struct erl_bin_match_buffer*, Eterm);
+BIF_RETTYPE hipe_is_divisible(BIF_ALIST_2);
#ifdef NO_FPE_SIGNALS
AEXTERN(void,nbif_emulate_fpe,(Process*));