]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/third-party/folly/folly/portability/Asm.h
buildsys: change download over to reef release
[ceph.git] / ceph / src / rocksdb / third-party / folly / folly / portability / Asm.h
CommitLineData
f67539c2
TL
1// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2// This source code is licensed under both the GPLv2 (found in the
3// COPYING file in the root directory) and Apache 2.0 License
4// (found in the LICENSE.Apache file in the root directory).
5
6#pragma once
7
8#include <folly/Portability.h>
9
10#include <cstdint>
11
12#ifdef _MSC_VER
13#include <intrin.h>
14#endif
15
16namespace folly {
17inline void asm_volatile_pause() {
18#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
19 ::_mm_pause();
20#elif defined(__i386__) || FOLLY_X64
21 asm volatile("pause");
22#elif FOLLY_AARCH64 || defined(__arm__)
23 asm volatile("yield");
24#elif FOLLY_PPC64
25 asm volatile("or 27,27,27");
26#endif
27}
28} // namespace folly