aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/big.c
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2011-06-08 10:00:48 +0200
committerPatrik Nyblom <[email protected]>2011-12-02 15:21:10 +0100
commitf2fce18b897189a60c518017704bf3b100451a93 (patch)
tree17e77a595f8f0f5c1f20813985b8a346b22abeee /erts/emulator/beam/big.c
parent7f9e276476c4939cf3c79f6786abf0b714cee333 (diff)
downloadotp-f2fce18b897189a60c518017704bf3b100451a93.tar.gz
otp-f2fce18b897189a60c518017704bf3b100451a93.tar.bz2
otp-f2fce18b897189a60c518017704bf3b100451a93.zip
Get cerl and distribution working in Win64
Can still not setup -a, but cerl works.
Diffstat (limited to 'erts/emulator/beam/big.c')
-rw-r--r--erts/emulator/beam/big.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/erts/emulator/beam/big.c b/erts/emulator/beam/big.c
index 46db9ca99c..1c38ac3211 100644
--- a/erts/emulator/beam/big.c
+++ b/erts/emulator/beam/big.c
@@ -1450,6 +1450,20 @@ erts_make_integer(Uint x, Process *p)
return uint_to_big(x,hp);
}
}
+/*
+ * As erts_make_integer, but from a whole UWord.
+ */
+Eterm
+erts_make_integer_from_uword(UWord x, Process *p)
+{
+ Eterm* hp;
+ if (IS_USMALL(0,x))
+ return make_small(x);
+ else {
+ hp = HAlloc(p, BIG_UWORD_HEAP_SIZE(x));
+ return uword_to_big(x,hp);
+ }
+}
/*
** convert Uint to bigint