Peter Jeremy <peterjeremy_at_optushome.com.au> writes: > There's a feature bit (CPUID_CX8) that advertises the availability of > cmpxchg8b (and maybe some related instructions). My pre-MMX 586 has > this bit set so I presume anything later than 486 will support it. > (I'm not sure about the low-end VIA, GEODE etc clones). The Geode is a 486, and does not support it. The C3 however is a 586. The C3 Ezra and C3 Samuel / Samuel 2 do not have CX8. I'm not sure about the C3 Nehemiah, I don't have one running at the moment. > I agree that GENERIC should run on lowest-common-denominator hardware > (the definition of that is a subject for a different thread). GENERIC > performance could be enhanced by using an indirect call for 8-byte > atomic instructions and selecting between the cmpxchg8b and > alternative implementation as part of the CPU startup (much like > i586_bcopy). If CPU_486 is not defined, you code could inline the > cmpxchg8b-based variant. Our native atomic operations are all defined as either macros or static inline functions in machine/atomic.h, so we can easily make this choice at compile time based on a config option. DES -- Dag-Erling Smørgrav - des_at_des.noReceived on Thu Apr 12 2007 - 06:54:23 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC