Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite5603a2

Browse files
committed
Mark x86's memory barrier inline assembly as clobbering the cpu flags.
x86's memory barrier assembly was marked as clobbering "memory" butnot "cc" even though 'addl' sets various flags. As it turns out gcc onx86 implicitly assumes "cc" on every inline assembler statement, soit's not a bug. But as that's poorly documented and might get copiedto architectures or compilers where that's not the case, it seemsbetter to be precise.Discussion: 20140919100016.GH4277@alap3.anarazel.deTo keep the code common, backpatch to 9.2 where explicit memorybarriers were introduced.
1 parentafaefa1 commite5603a2

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

‎src/include/storage/barrier.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ extern slock_t dummy_spinlock;
7575
* "lock; addl" has worked for longer than "mfence".
7676
*/
7777
#definepg_memory_barrier()\
78-
__asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
78+
__asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory", "cc")
7979
#definepg_read_barrier()pg_compiler_barrier()
8080
#definepg_write_barrier()pg_compiler_barrier()
8181
#elif defined(__x86_64__)/* 64 bit x86 */
@@ -89,7 +89,7 @@ extern slock_t dummy_spinlock;
8989
* do those things, a compiler barrier should be enough.
9090
*/
9191
#definepg_memory_barrier()\
92-
__asm__ __volatile__ ("lock; addl $0,0(%%rsp)" : : : "memory")
92+
__asm__ __volatile__ ("lock; addl $0,0(%%rsp)" : : : "memory", "cc")
9393
#definepg_read_barrier()pg_compiler_barrier()
9494
#definepg_write_barrier()pg_compiler_barrier()
9595
#elif defined(__ia64__)|| defined(__ia64)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp