aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/sys.h
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2011-11-15 20:10:21 +0100
committerPatrik Nyblom <[email protected]>2011-12-02 15:26:16 +0100
commite04704b1f40511a6e1090b4cb04ef543580cdcc7 (patch)
tree53b552ed234927259261550f49e88629389e6ba2 /erts/emulator/beam/sys.h
parente78a1582dc13d770bf1a9de64ff817369c741ef5 (diff)
downloadotp-e04704b1f40511a6e1090b4cb04ef543580cdcc7.tar.gz
otp-e04704b1f40511a6e1090b4cb04ef543580cdcc7.tar.bz2
otp-e04704b1f40511a6e1090b4cb04ef543580cdcc7.zip
Iron out bugs in Win64 found in daily builds
Almost all uses of the 'long' datatype is removed from VM and tests Emulator test now runs w/o drivers crashing Nasty abs bug fixed in VM as well as type errors in allocator debug functions Still one allocator test that fails, domain knowledge is needed to fix that. Fix type inconsistency in beam_load causing crashes
Diffstat (limited to 'erts/emulator/beam/sys.h')
-rw-r--r--erts/emulator/beam/sys.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h
index 0a42e45783..d8cd22a177 100644
--- a/erts/emulator/beam/sys.h
+++ b/erts/emulator/beam/sys.h
@@ -989,6 +989,19 @@ void erl_bin_write(unsigned char *, int, int);
#endif
+#ifdef __WIN32__
+#ifdef ARCH_64
+#define ERTS_ALLOC_ALIGN_BYTES 16
+#define ERTS_SMALL_ABS(Small) _abs64(Small)
+#else
+#define ERTS_ALLOC_ALIGN_BYTES 8
+#define ERTS_SMALL_ABS(Small) labs(Small)
+#endif
+#else
+#define ERTS_ALLOC_ALIGN_BYTES 8
+#define ERTS_SMALL_ABS(Small) labs(Small)
+#endif
+
#ifdef __WIN32__