ruby-changes:24252
From: usa <ko1@a...>
Date: Wed, 4 Jul 2012 11:56:16 +0900 (JST)
Subject: [ruby-changes:24252] usa:r36303 (trunk): * gc.c (ATOMIC_SIZE_*): 64bit Windows support.
usa 2012-07-04 11:53:20 +0900 (Wed, 04 Jul 2012) New Revision: 36303 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36303 Log: * gc.c (ATOMIC_SIZE_*): 64bit Windows support. Modified files: trunk/ChangeLog trunk/gc.c Index: ChangeLog =================================================================== --- ChangeLog (revision 36302) +++ ChangeLog (revision 36303) @@ -1,3 +1,7 @@ +Wed Jul 4 11:52:12 2012 NAKAMURA Usaku <usa@r...> + + * gc.c (ATOMIC_SIZE_*): 64bit Windows support. + Wed Jul 4 11:11:28 2012 Nobuyoshi Nakada <nobu@r...> * eval.c (rb_frame_callee, rb_f_callee_name): fix to return the called Index: gc.c =================================================================== --- gc.c (revision 36302) +++ gc.c (revision 36303) @@ -61,11 +61,19 @@ #endif #if defined _WIN32 -# define ATOMIC_SIZE_ADD(var, val) InterlockedExchangeAdd(&(var), (val)) -# define ATOMIC_SIZE_SUB(var, val) InterlockedExchangeAdd(&(var), -(val)) -# define ATOMIC_SIZE_INC(var) InterlockedIncrement(&(var)) -# define ATOMIC_SIZE_DEC(var) InterlockedDecrement(&(var)) -# define ATOMIC_SIZE_EXCHANGE(var, val) InterlockedExchange(&(var), (val)) +# ifdef _M_AMD64 +# define ATOMIC_SIZE_ADD(var, val) InterlockedExchangeAdd64(&(var), (val)) +# define ATOMIC_SIZE_SUB(var, val) InterlockedExchangeAdd64(&(var), -(val)) +# define ATOMIC_SIZE_INC(var) InterlockedIncrement64(&(var)) +# define ATOMIC_SIZE_DEC(var) InterlockedDecrement64(&(var)) +# define ATOMIC_SIZE_EXCHANGE(var, val) InterlockedExchange64(&(var), (val)) +# else +# define ATOMIC_SIZE_ADD(var, val) InterlockedExchangeAdd(&(var), (val)) +# define ATOMIC_SIZE_SUB(var, val) InterlockedExchangeAdd(&(var), -(val)) +# define ATOMIC_SIZE_INC(var) InterlockedIncrement(&(var)) +# define ATOMIC_SIZE_DEC(var) InterlockedDecrement(&(var)) +# define ATOMIC_SIZE_EXCHANGE(var, val) InterlockedExchange(&(var), (val)) +# endif #elif defined HAVE_GCC_ATOMIC_BUILTINS # define ATOMIC_SIZE_ADD(var, val) __sync_fetch_and_add(&(var), (val)) # define ATOMIC_SIZE_SUB(var, val) __sync_fetch_and_sub(&(var), (val)) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/