[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Sun Feb 14 08:23:25 CET 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/02/14 08:23:25
Modified files:
cm3/m3-sys/m3back/src/: Codex86.m3 M3x86.m3
Log message:
atomic fetch_op work in progress
almost works, but the levels of indirection are wrong:
_Main__Test_AtomicInteger_FetchAnd:
...
000001C6: 8D 35 38 00 00 00 lea esi,[_MM_Main+38h]
000001CC: 8B 15 98 00 00 00 mov edx,dword ptr [_MM_Main+98h]
000001D2: 8B C6 mov eax,esi needs indirection, doesn't need to be use esi but that is ok
000001D4: 8B D8 mov ebx,eax
000001D6: 23 DA and ebx,edx
000001D8: F0 0F B1 33 lock cmpxchg dword ptr [ebx],esi parameters reversed, odd, given that compare_exchange works
000001DC: 75 F6 jne 000001D4
000001DE: 89 35 9C 00 00 00 mov dword ptr [_MM_Main+9Ch],esi
...
should be more like:
...
000001C6: 8D 35 38 00 00 00 lea esi,[_MM_Main+38h]
000001CC: 8B 15 98 00 00 00 mov edx,dword ptr [_MM_Main+98h]
000001D2: 8B C6 mov eax, [_MM_Main+38h] or DWORD PTR [esi] **
000001D4: 8B D8 mov ebx,eax
000001D6: 23 DA and ebx,edx
000001D8: F0 0F B1 33 lock cmpxchg dword ptr [esi],ebx OR lock cmpxchg dword ptr [_MM_Main+98h],ebx
000001DC: 75 F6 jne 000001D4
...
More information about the M3commit
mailing list