* include/ruby/ruby.h (NUM2LONG): added GCC specific optimization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
762fec4946
commit
a273dc9b16
@ -1,3 +1,7 @@
|
|||||||
|
Tue May 26 05:38:03 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* include/ruby/ruby.h (NUM2LONG): added GCC specific optimization.
|
||||||
|
|
||||||
Tue May 26 03:41:29 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue May 26 03:41:29 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* time.c (rb_gmtime, rb_localtime): gmtime and localtime return
|
* time.c (rb_gmtime, rb_localtime): gmtime and localtime return
|
||||||
|
@ -433,11 +433,17 @@ void rb_set_errinfo(VALUE);
|
|||||||
|
|
||||||
SIGNED_VALUE rb_num2long(VALUE);
|
SIGNED_VALUE rb_num2long(VALUE);
|
||||||
VALUE rb_num2ulong(VALUE);
|
VALUE rb_num2ulong(VALUE);
|
||||||
|
#define NUM2LONG_internal(x) (FIXNUM_P(x) ? FIX2LONG(x) : rb_num2long(x))
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define NUM2LONG(x) \
|
||||||
|
__extension__ ({VALUE num2long_x = (x); NUM2LONG_internal(num2long_x);})
|
||||||
|
#else
|
||||||
static inline long
|
static inline long
|
||||||
NUM2LONG(VALUE x)
|
NUM2LONG(VALUE x)
|
||||||
{
|
{
|
||||||
return FIXNUM_P(x) ? FIX2LONG(x) : rb_num2long(x);
|
return NUM2LONG_internal(x);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#define NUM2ULONG(x) rb_num2ulong((VALUE)x)
|
#define NUM2ULONG(x) rb_num2ulong((VALUE)x)
|
||||||
#if SIZEOF_INT < SIZEOF_LONG
|
#if SIZEOF_INT < SIZEOF_LONG
|
||||||
long rb_num2int(VALUE);
|
long rb_num2int(VALUE);
|
||||||
@ -672,7 +678,7 @@ NORETURN(void rb_out_of_int(SIGNED_VALUE num));
|
|||||||
int i = (int)(n); \
|
int i = (int)(n); \
|
||||||
if ((long)i != (n)) rb_out_of_int(n)
|
if ((long)i != (n)) rb_out_of_int(n)
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define rb_long2int(i2l_n) ({rb_long2int_internal(i2l_n, i2l_i); i2l_i;})
|
#define rb_long2int(i2l_n) __extension__ ({rb_long2int_internal(i2l_n, i2l_i); i2l_i;})
|
||||||
#else
|
#else
|
||||||
static inline int
|
static inline int
|
||||||
rb_long2int(long n) {rb_long2int_internal(n, i); return i;}
|
rb_long2int(long n) {rb_long2int_internal(n, i); return i;}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user