aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/big.c
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2010-02-11 11:00:47 +0100
committerBjörn Gustavsson <[email protected]>2010-03-10 14:25:36 +0100
commitac0b3f0a64705717d21e4a3d84d91d9c44f3baf7 (patch)
tree749b16612ebb287c0ea73d3c9e8abfbe3d530c03 /erts/emulator/beam/big.c
parent3ddf0126dfcb60f0554e2d52187fa012f378e428 (diff)
downloadotp-ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7.tar.gz
otp-ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7.tar.bz2
otp-ac0b3f0a64705717d21e4a3d84d91d9c44f3baf7.zip
Correct the VM to work for more test suites
The following test suites now work: send_term_SUITE trace_nif_SUITE binary_SUITE match_spec_SUITE node_container_SUITE beam_literals_SUITE Also add a testcases for system_info({wordsize,internal|external}).
Diffstat (limited to 'erts/emulator/beam/big.c')
-rw-r--r--erts/emulator/beam/big.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/erts/emulator/beam/big.c b/erts/emulator/beam/big.c
index c70044ed43..40c8e15436 100644
--- a/erts/emulator/beam/big.c
+++ b/erts/emulator/beam/big.c
@@ -1504,7 +1504,7 @@ Eterm small_to_big(Sint x, Eterm *y)
Eterm erts_uint64_to_big(Uint64 x, Eterm **hpp)
{
Eterm *hp = *hpp;
-#ifdef ARCH_32
+#if defined(ARCH_32) || HALFWORD_HEAP
if (x >= (((Uint64) 1) << 32)) {
*hp = make_pos_bignum_header(2);
BIG_DIGIT(hp, 0) = (Uint) (x & ((Uint) 0xffffffff));
@@ -1531,7 +1531,7 @@ Eterm erts_sint64_to_big(Sint64 x, Eterm **hpp)
neg = 1;
x = -x;
}
-#ifdef ARCH_32
+#if defined(ARCH_32) || HALFWORD_HEAP
if (x >= (((Uint64) 1) << 32)) {
if (neg)
*hp = make_neg_bignum_header(2);