arch-ia64.h 783 B

1234567891011121314151617181920212223242526
  1. /*-------------------------------------------------------------------------
  2. *
  3. * arch-ia64.h
  4. * Atomic operations considerations specific to intel itanium
  5. *
  6. * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
  7. * Portions Copyright (c) 1994, Regents of the University of California
  8. *
  9. * NOTES:
  10. *
  11. * src/include/port/atomics/arch-ia64.h
  12. *
  13. *-------------------------------------------------------------------------
  14. */
  15. /*
  16. * Itanium is weakly ordered, so read and write barriers require a full
  17. * fence.
  18. */
  19. #if defined(__INTEL_COMPILER)
  20. # define pg_memory_barrier_impl() __mf()
  21. #elif defined(__GNUC__)
  22. # define pg_memory_barrier_impl() __asm__ __volatile__ ("mf" : : : "memory")
  23. #elif defined(__hpux)
  24. # define pg_memory_barrier_impl() _Asm_mf()
  25. #endif