summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/big.c
diff options
context:
space:
mode:
authorSverker Eriksson <sverker@erlang.org>2010-11-24 10:53:56 +0100
committerSverker Eriksson <sverker@erlang.org>2011-02-03 17:33:43 +0100
commitfff4ba0282e42e2942acebff9c10a274075c1c62 (patch)
treea3a73ded3d31a4944c6208167e286759d75e5040 /erts/emulator/beam/big.c
parent62dad961329a603110ce0e1d3f62554cc5228152 (diff)
downloaderlang-fff4ba0282e42e2942acebff9c10a274075c1c62.tar.gz
HALFWORD ETS relative terms
In halfword emulator, make ETS use a variant of the internal term format that uses relative offsets instead of absolute pointers. This will allow storage in high memory (>4G). Preprocessor macros (like list_val_rel(TERM,BASE)) are used to make normal (fullword) emulator almost completely unchanged while still reusing most of the code.
Diffstat (limited to 'erts/emulator/beam/big.c')
-rw-r--r--erts/emulator/beam/big.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/big.c b/erts/emulator/beam/big.c
index ff15d834ab..57964b31e4 100644
--- a/erts/emulator/beam/big.c
+++ b/erts/emulator/beam/big.c
@@ -1558,7 +1558,7 @@ Eterm erts_sint64_to_big(Sint64 x, Eterm **hpp)
** Convert a bignum to a double float
*/
int
-big_to_double(Eterm x, double* resp)
+big_to_double(Wterm x, double* resp)
{
double d = 0.0;
Eterm* xp = big_val(x);
@@ -1725,7 +1725,7 @@ static Eterm big_norm(Eterm *x, dsize_t xl, short sign)
/*
** Compare bignums
*/
-int big_comp(Eterm x, Eterm y)
+int big_comp(Wterm x, Wterm y)
{
Eterm* xp = big_val(x);
Eterm* yp = big_val(y);
@@ -2060,7 +2060,7 @@ static Eterm B_plus_minus(ErtsDigit *x, dsize_t xl, short xsgn,
/*
** Add bignums
*/
-Eterm big_plus(Eterm x, Eterm y, Eterm *r)
+Eterm big_plus(Wterm x, Wterm y, Eterm *r)
{
Eterm* xp = big_val(x);
Eterm* yp = big_val(y);