[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