mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* include/ruby/defines.h (BDIGIT): Define it only if it is not defined
yet. This eases tests and debug. (SIZEOF_BDIGITS): Ditto. (BDIGIT_DBL): Ditto. (BDIGIT_DBL_SIGNED): Ditto. (PRI_BDIGIT_PREFIX): Ditto. (PRI_BDIGIT_DBL_PREFIX): Ditto. (PRIdBDIGIT): Define it only if PRI_BDIGIT_PREFIX is defined. (PRIiBDIGIT): Ditto. (PRIoBDIGIT): Ditto. (PRIuBDIGIT): Ditto. (PRIxBDIGIT): Ditto. (PRIXBDIGIT): Ditto. (PRIdBDIGIT_DBL): Ditto. (PRIiBDIGIT_DBL): Ditto. (PRIoBDIGIT_DBL): Ditto. (PRIuBDIGIT_DBL): Ditto. (PRIxBDIGIT_DBL): Ditto. (PRIXBDIGIT_DBL): Ditto. * include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Define it only if it is not defined yet. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9310247f50
commit
ad6d79e7cb
3 changed files with 80 additions and 47 deletions
25
ChangeLog
25
ChangeLog
|
@ -1,3 +1,28 @@
|
|||
Sun Jun 23 23:05:58 2013 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* include/ruby/defines.h (BDIGIT): Define it only if it is not defined
|
||||
yet. This eases tests and debug.
|
||||
(SIZEOF_BDIGITS): Ditto.
|
||||
(BDIGIT_DBL): Ditto.
|
||||
(BDIGIT_DBL_SIGNED): Ditto.
|
||||
(PRI_BDIGIT_PREFIX): Ditto.
|
||||
(PRI_BDIGIT_DBL_PREFIX): Ditto.
|
||||
(PRIdBDIGIT): Define it only if PRI_BDIGIT_PREFIX is defined.
|
||||
(PRIiBDIGIT): Ditto.
|
||||
(PRIoBDIGIT): Ditto.
|
||||
(PRIuBDIGIT): Ditto.
|
||||
(PRIxBDIGIT): Ditto.
|
||||
(PRIXBDIGIT): Ditto.
|
||||
(PRIdBDIGIT_DBL): Ditto.
|
||||
(PRIiBDIGIT_DBL): Ditto.
|
||||
(PRIoBDIGIT_DBL): Ditto.
|
||||
(PRIuBDIGIT_DBL): Ditto.
|
||||
(PRIxBDIGIT_DBL): Ditto.
|
||||
(PRIXBDIGIT_DBL): Ditto.
|
||||
|
||||
* include/ruby/ruby.h (RBIGNUM_EMBED_LEN_MAX): Define it only if it is
|
||||
not defined yet.
|
||||
|
||||
Sun Jun 23 17:29:51 2013 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* bignum.c (integer_unpack_single_bdigit): Use a cast.
|
||||
|
|
|
@ -141,55 +141,61 @@ void xfree(void*);
|
|||
# define SIZEOF_LONG_LONG SIZEOF___INT64
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_INT64_T) && defined(HAVE_INT128_T)
|
||||
#ifndef BDIGIT
|
||||
# if defined(HAVE_INT64_T) && defined(HAVE_INT128_T)
|
||||
# define BDIGIT uint64_t
|
||||
# define SIZEOF_BDIGITS SIZEOF_INT64_T
|
||||
# define BDIGIT_DBL uint128_t
|
||||
# define BDIGIT_DBL_SIGNED int128_t
|
||||
# define PRI_BDIGIT_PREFIX PRI_64_PREFIX
|
||||
#elif SIZEOF_INT*2 <= SIZEOF_LONG_LONG
|
||||
# elif SIZEOF_INT*2 <= SIZEOF_LONG_LONG
|
||||
# define BDIGIT unsigned int
|
||||
# define SIZEOF_BDIGITS SIZEOF_INT
|
||||
# define BDIGIT_DBL unsigned LONG_LONG
|
||||
# define BDIGIT_DBL_SIGNED LONG_LONG
|
||||
# define PRI_BDIGIT_PREFIX ""
|
||||
# define PRI_BDIGIT_DBL_PREFIX PRI_LL_PREFIX
|
||||
#elif SIZEOF_INT*2 <= SIZEOF_LONG
|
||||
# elif SIZEOF_INT*2 <= SIZEOF_LONG
|
||||
# define BDIGIT unsigned int
|
||||
# define SIZEOF_BDIGITS SIZEOF_INT
|
||||
# define BDIGIT_DBL unsigned long
|
||||
# define BDIGIT_DBL_SIGNED long
|
||||
# define PRI_BDIGIT_PREFIX ""
|
||||
# define PRI_BDIGIT_DBL_PREFIX "l"
|
||||
#elif SIZEOF_SHORT*2 <= SIZEOF_LONG
|
||||
# elif SIZEOF_SHORT*2 <= SIZEOF_LONG
|
||||
# define BDIGIT unsigned short
|
||||
# define SIZEOF_BDIGITS SIZEOF_SHORT
|
||||
# define BDIGIT_DBL unsigned long
|
||||
# define BDIGIT_DBL_SIGNED long
|
||||
# define PRI_BDIGIT_PREFIX "h"
|
||||
# define PRI_BDIGIT_DBL_PREFIX "l"
|
||||
#else
|
||||
# else
|
||||
# define BDIGIT unsigned short
|
||||
# define SIZEOF_BDIGITS (SIZEOF_LONG/2)
|
||||
# define BDIGIT_DBL unsigned long
|
||||
# define BDIGIT_DBL_SIGNED long
|
||||
# define PRI_BDIGIT_PREFIX "h"
|
||||
# define PRI_BDIGIT_DBL_PREFIX "l"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define PRIdBDIGIT PRI_BDIGIT_PREFIX"d"
|
||||
#define PRIiBDIGIT PRI_BDIGIT_PREFIX"i"
|
||||
#define PRIoBDIGIT PRI_BDIGIT_PREFIX"o"
|
||||
#define PRIuBDIGIT PRI_BDIGIT_PREFIX"u"
|
||||
#define PRIxBDIGIT PRI_BDIGIT_PREFIX"x"
|
||||
#define PRIXBDIGIT PRI_BDIGIT_PREFIX"X"
|
||||
#ifdef PRI_BDIGIT_PREFIX
|
||||
# define PRIdBDIGIT PRI_BDIGIT_PREFIX"d"
|
||||
# define PRIiBDIGIT PRI_BDIGIT_PREFIX"i"
|
||||
# define PRIoBDIGIT PRI_BDIGIT_PREFIX"o"
|
||||
# define PRIuBDIGIT PRI_BDIGIT_PREFIX"u"
|
||||
# define PRIxBDIGIT PRI_BDIGIT_PREFIX"x"
|
||||
# define PRIXBDIGIT PRI_BDIGIT_PREFIX"X"
|
||||
#endif
|
||||
|
||||
#define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d"
|
||||
#define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i"
|
||||
#define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o"
|
||||
#define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u"
|
||||
#define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x"
|
||||
#define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X"
|
||||
#ifdef PRI_BDIGIT_DBL_PREFIX
|
||||
# define PRIdBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"d"
|
||||
# define PRIiBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"i"
|
||||
# define PRIoBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"o"
|
||||
# define PRIuBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"u"
|
||||
# define PRIxBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"x"
|
||||
# define PRIXBDIGIT_DBL PRI_BDIGIT_DBL_PREFIX"X"
|
||||
#endif
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#undef _WIN32
|
||||
|
|
|
@ -1134,7 +1134,9 @@ struct RStruct {
|
|||
#define RSTRUCT_SET(st, idx, v) OBJ_WRITE(st, &RSTRUCT_RAWPTR(st)[idx], (v))
|
||||
#define RSTRUCT_GET(st, idx) (RSTRUCT_RAWPTR(st)[idx])
|
||||
|
||||
#define RBIGNUM_EMBED_LEN_MAX ((int)((sizeof(VALUE)*3)/sizeof(BDIGIT)))
|
||||
#ifndef RBIGNUM_EMBED_LEN_MAX
|
||||
# define RBIGNUM_EMBED_LEN_MAX ((int)((sizeof(VALUE)*3)/sizeof(BDIGIT)))
|
||||
#endif
|
||||
struct RBignum {
|
||||
struct RBasic basic;
|
||||
union {
|
||||
|
|
Loading…
Add table
Reference in a new issue