Merge lp:~vkolesnikov/pbxt/pbxt-atomic-inc into lp:pbxt

Proposed by Vladimir Kolesnikov
Status: Merged
Merged at revision: not available
Proposed branch: lp:~vkolesnikov/pbxt/pbxt-atomic-inc
Merge into: lp:pbxt
Diff against target: None lines
To merge this branch: bzr merge lp:~vkolesnikov/pbxt/pbxt-atomic-inc
Reviewer Review Type Date Requested Status
PBXT Core Pending
Review via email: mp+4229@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Vladimir Kolesnikov (vkolesnikov) wrote :

changed ADD to INC, fixed a bug in Linux asm code

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/lock_xt.h'
--- src/lock_xt.h 2009-03-05 13:31:40 +0000
+++ src/lock_xt.h 2009-03-06 09:59:56 +0000
@@ -195,12 +195,10 @@
195inline void xt_atomic_inc2(volatile xtWord2 *mptr)195inline void xt_atomic_inc2(volatile xtWord2 *mptr)
196{196{
197#ifdef XT_SPL_WIN32_ASM197#ifdef XT_SPL_WIN32_ASM
198 __asm LOCK ADD WORD PTR mptr, 1198 __asm LOCK INC WORD PTR mptr
199#elif defined(XT_SPL_GNUC_X86)199#elif defined(XT_SPL_GNUC_X86)
200#ifdef XT_HAVE_XADD200#ifdef XT_HAVE_XADD
201 xtWord2 inc = 1;201 asm volatile ("lock; incw %0" : : "m" (*mptr) : "memory");
202
203 asm volatile ("lock; addw %0, %1" : "+r" (inc) : "m" (*mptr) : "memory");
204#else202#else
205 xtWord2 val1, val2;203 xtWord2 val1, val2;
206204
@@ -222,12 +220,10 @@
222inline void xt_atomic_dec2(volatile xtWord2 *mptr)220inline void xt_atomic_dec2(volatile xtWord2 *mptr)
223{221{
224#ifdef XT_SPL_WIN32_ASM222#ifdef XT_SPL_WIN32_ASM
225 __asm LOCK SUB WORD PTR mptr, 1223 __asm LOCK DEC WORD PTR mptr
226#elif defined(XT_SPL_GNUC_X86)224#elif defined(XT_SPL_GNUC_X86)
227#ifdef XT_HAVE_XADD225#ifdef XT_HAVE_XADD
228 xtWord2 inc = -1;226 asm volatile ("lock; decw %0" : : "m" (*mptr) : "memory");
229
230 asm volatile ("lock; subw %0, %1" : "+r" (inc) : "m" (*mptr) : "memory");
231#else227#else
232 xtWord2 val1, val2;228 xtWord2 val1, val2;
233229

Subscribers

People subscribed via source and target branches