I think the 80486 introduced the cmp8xchg instruction.
On 17 Aug, 2010, at 9:25 am, Kristian Nielsen wrote: > Oleg Tsarev <[email protected]> writes: > >> I need my_atomic_add64 in mysql. >> >> Can i simple add following macros, or i need more advanced tricks? >> >> tsa...@main:/storage/project/percona/rtd_2$ diff -Nur >> ../rtd/c/include/my_atomic.h c/include/my_atomic.h >> --- ../rtd/c/include/my_atomic.h 2010-07-09 16:35:11.000000000 +0400 >> +++ c/include/my_atomic.h 2010-08-17 18:57:07.648819066 +0400 > > I think you'll also need > > make_transparent_unions(32) > #define U_32 int32 > #define Uv_32 int32 > > >> @@ -96,25 +96,30 @@ >> make_atomic_cas( 8) >> make_atomic_cas(16) >> make_atomic_cas(32) >> +make_atomic_cas(64) >> make_atomic_cas(ptr) > >> ... > > My guess is it should work, at least on 64-bit platforms. > > I'm not sure that 32-bit CPUs generally provide 64-bit atomic operations. If > not (which seems likely, really), you'll need to come up with something to > handle this case. Note that the my_atomic stuff has the possibility to > fallback to mutex locking when support is not available, so one way might be > to make it use this fallback on 32-bit (taking a performance penalty, but > 32-bit is getting less and less interesting by the day anyway). > > - Kristian. > > _______________________________________________ > Mailing list: https://launchpad.net/~maria-discuss > Post to : [email protected] > Unsubscribe : https://launchpad.net/~maria-discuss > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp

