summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2013-05-26 10:26:34 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2013-05-26 10:26:34 -0300
commitd46ed54646b2953007a882f3d4c743741914e202 (patch)
tree6b6016ebc3af4563d07a4909f3ed5dd5f2b71ff2
parente2c8c756eea9ecb51b05ade661ef1367e47e623c (diff)
downloadlua-d46ed54646b2953007a882f3d4c743741914e202.tar.gz
lua-d46ed54646b2953007a882f3d4c743741914e202.tar.bz2
lua-d46ed54646b2953007a882f3d4c743741914e202.zip
no more IEEE tricks
-rw-r--r--luaconf.h70
1 files changed, 1 insertions, 69 deletions
diff --git a/luaconf.h b/luaconf.h
index e43e5213..591dc9d2 100644
--- a/luaconf.h
+++ b/luaconf.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: luaconf.h,v 1.178 2013/04/26 13:08:29 roberto Exp roberto $ 2** $Id: luaconf.h,v 1.179 2013/04/29 17:12:12 roberto Exp roberto $
3** Configuration file for Lua 3** Configuration file for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -479,74 +479,6 @@
479#define lua_integer2str(s,n) sprintf((s), LUA_INTEGER_FMT, (n)) 479#define lua_integer2str(s,n) sprintf((s), LUA_INTEGER_FMT, (n))
480#define LUA_MAXINTEGER2STR 32 480#define LUA_MAXINTEGER2STR 32
481 481
482
483
484/*
485** Some tricks with doubles
486*/
487
488#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) && 0 /* { */
489/*
490** The next definitions activate some tricks to speed up the
491** conversion from doubles to integer types, mainly to LUA_UNSIGNED.
492**
493@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a
494** DirectX idiosyncrasy.
495**
496@@ LUA_IEEE754TRICK uses a trick that should work on any machine
497** using IEEE754 with a 32-bit integer type.
498**
499@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be
500** defined when LUA_INTEGER is a 32-bit integer.
501**
502@@ LUA_IEEEENDIAN is the endianness of doubles in your machine
503** (0 for little endian, 1 for big endian); if not defined, Lua will
504** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK).
505**
506@@ LUA_NANTRICK controls the use of a trick to pack all types into
507** a single double value, using NaN values to represent non-number
508** values. The trick only works on 32-bit machines (ints and pointers
509** are 32-bit values) with numbers represented as IEEE 754-2008 doubles
510** with conventional endianess (12345678 or 87654321), in CPUs that do
511** not produce signaling NaN values (all NaNs are quiet).
512*/
513
514/* Microsoft compiler on a Pentium (32 bit) ? */
515#if defined(LUA_WIN) && defined(_MSC_VER) && defined(_M_IX86) /* { */
516
517#define LUA_MSASMTRICK
518#define LUA_IEEEENDIAN 0
519#define LUA_NANTRICK
520
521
522/* pentium 32 bits? */
523#elif defined(__i386__) || defined(__i386) || defined(__X86__) /* }{ */
524
525#define LUA_IEEE754TRICK
526#define LUA_IEEELL
527#define LUA_IEEEENDIAN 0
528#define LUA_NANTRICK
529
530/* pentium 64 bits? */
531#elif defined(__x86_64) /* }{ */
532
533#define LUA_IEEE754TRICK
534#define LUA_IEEEENDIAN 0
535
536#elif defined(__POWERPC__) || defined(__ppc__) /* }{ */
537
538#define LUA_IEEE754TRICK
539#define LUA_IEEEENDIAN 1
540
541#else /* }{ */
542
543/* assume IEEE754 and a 32-bit integer type */
544#define LUA_IEEE754TRICK
545
546#endif /* } */
547
548#endif /* } */
549
550/* }================================================================== */ 482/* }================================================================== */
551 483
552 484