Hi Slava,

I'm was implementing ##atomic-compare-exchange ( dst cptr old new -- ) 
last night and ran into a problem:

The cmpxchg instruction on x86 implicitly uses EAX/RAX as input and output.
http://faydoc.tripod.com/cpu/cmpxchg.htm

Is there any way to tell the register allocator about this?

My first thought was to simply save the contents of RAX on the stack 
prior to calling CMPXCHG. The problem with this is that if the reg 
allocator selects RAX as the dst register then it gets stomped when the 
original RAX value is popped.

Any tips?

Many thanks,

Phil




------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to