]> granicus.if.org Git - postgresql/commit
Mark x86's memory barrier inline assembly as clobbering the cpu flags.
authorAndres Freund <andres@anarazel.de>
Fri, 19 Sep 2014 15:04:00 +0000 (17:04 +0200)
committerAndres Freund <andres@anarazel.de>
Fri, 19 Sep 2014 15:14:17 +0000 (17:14 +0200)
commit8557a9f75fa0ac15892b21cb57fa19cce415142b
tree867228965f01442dee980b62c3528b52e4457e59
parentc5d11ebd5ac9e5501d0597fb083ced4bb87a1af2
Mark x86's memory barrier inline assembly as clobbering the cpu flags.

x86's memory barrier assembly was marked as clobbering "memory" but
not "cc" even though 'addl' sets various flags. As it turns out gcc on
x86 implicitly assumes "cc" on every inline assembler statement, so
it's not a bug. But as that's poorly documented and might get copied
to architectures or compilers where that's not the case, it seems
better to be precise.

Discussion: 20140919100016.GH4277@alap3.anarazel.de

To keep the code common, backpatch to 9.2 where explicit memory
barriers were introduced.
src/include/storage/barrier.h