1
0
Fork 0
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:
akr 2013-06-23 14:10:07 +00:00
parent 9310247f50
commit ad6d79e7cb
3 changed files with 80 additions and 47 deletions

View file

@ -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.

View file

@ -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

View file

@ -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 {