On 2016-03-29 14:09:42 -0400, Tom Lane wrote: > Andres Freund <and...@anarazel.de> writes: > > There's actually lbarx/stbcx - but it's not present in all ISAs. So I > > guess it's clear where to go. > > Hm. We could certainly add a configure test to see if the local assembler > knows these instructions --- but it's not clear that we should depend on > compile-time environment to match run-time.
I think it'd be easier to continue using lwarx/stwcx, but be careful about only testing/setting the lowest byte, if we want to go there. But that then likely would require hints about alignment to the compiler... i've no experience writing ppc assembly, but it doesn't look too hard. but i think it's easier to just remove the spinlock from struct lwlock then - and it also improves the situation for other architectures with wider spinlocks. i think that's beneficial for some future things anyway. > Googling suggests that these instructions came in with PPC ISA 2.06 > which seems to date to 2010. So there's undoubtedly still production > hardware without them. > > In the department of not-production hardware, I checked this on prairiedog > and got > /var/tmp/ccbQy9uG.s:1722:Invalid mnemonic 'lbarx' > /var/tmp/ccbQy9uG.s:1726:Invalid mnemonic 'stbcx.' Heh. Thanks for testing. Andres -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers