diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-16 18:10:55 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-16 22:49:55 +0900 |
| commit | 3107d1caaee4faa3a295c503ce4cfe9fd488fea0 (patch) | |
| tree | 267977b4e3849637fd0de985e064b22033057f6a /include | |
| parent | 3bb419aeab67ed1802d627144be6628a6e4dc118 (diff) | |
| download | mruby-3107d1caaee4faa3a295c503ce4cfe9fd488fea0.tar.gz mruby-3107d1caaee4faa3a295c503ce4cfe9fd488fea0.zip | |
Allow `int` size combinations for `MRB_WORD_BOXING`.
- `MRB_64BIT` and `MRB_INT32`
- `MRB_32BIT` and `MRB_INT64`
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby/boxing_word.h | 4 | ||||
| -rw-r--r-- | include/mruby/irep.h | 2 | ||||
| -rw-r--r-- | include/mruby/value.h | 12 |
3 files changed, 9 insertions, 9 deletions
diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h index c0005dffe..afc75c0d9 100644 --- a/include/mruby/boxing_word.h +++ b/include/mruby/boxing_word.h @@ -7,10 +7,6 @@ #ifndef MRUBY_BOXING_WORD_H #define MRUBY_BOXING_WORD_H -#if defined(MRB_INT64) && !defined(MRB_64BIT) -#error MRB_INT64 cannot be used with MRB_WORD_BOXING in 32-bit mode. -#endif - #ifndef MRB_NO_FLOAT struct RFloat { MRB_OBJECT_HEADER; diff --git a/include/mruby/irep.h b/include/mruby/irep.h index 631f16027..a43e854b4 100644 --- a/include/mruby/irep.h +++ b/include/mruby/irep.h @@ -31,7 +31,7 @@ typedef struct mrb_pool_value { union { const char *str; int32_t i32; -#ifdef MRB_64BIT +#if defined(MRB_64BIT) || defined(MRB_INT64) int64_t i64; #endif mrb_float f; diff --git a/include/mruby/value.h b/include/mruby/value.h index 698c83300..bafe67ce0 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -56,8 +56,6 @@ struct mrb_state; # define MRB_INT_BIT 64 # define MRB_INT_MIN INT64_MIN # define MRB_INT_MAX INT64_MAX -# define MRB_FIXNUM_MIN (INT64_MIN>>MRB_FIXNUM_SHIFT) -# define MRB_FIXNUM_MAX (INT64_MAX>>MRB_FIXNUM_SHIFT) # define MRB_PRIo PRIo64 # define MRB_PRId PRId64 # define MRB_PRIx PRIx64 @@ -66,13 +64,19 @@ struct mrb_state; # define MRB_INT_BIT 32 # define MRB_INT_MIN INT32_MIN # define MRB_INT_MAX INT32_MAX -# define MRB_FIXNUM_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT) -# define MRB_FIXNUM_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT) # define MRB_PRIo PRIo32 # define MRB_PRId PRId32 # define MRB_PRIx PRIx32 #endif +#if defined(MRB_64BIT) && defined(MRB_INT64) +# define MRB_FIXNUM_MIN (INT64_MIN>>MRB_FIXNUM_SHIFT) +# define MRB_FIXNUM_MAX (INT64_MAX>>MRB_FIXNUM_SHIFT) +#else +# define MRB_FIXNUM_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT) +# define MRB_FIXNUM_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT) +#endif + #ifdef MRB_ENDIAN_BIG # define MRB_ENDIAN_LOHI(a,b) a b #else |
