17 #define CNE_XBEGIN_STARTED (~0u)
18 #define CNE_XABORT_EXPLICIT (1 << 0)
19 #define CNE_XABORT_RETRY (1 << 1)
20 #define CNE_XABORT_CONFLICT (1 << 2)
21 #define CNE_XABORT_CAPACITY (1 << 3)
22 #define CNE_XABORT_DEBUG (1 << 4)
23 #define CNE_XABORT_NESTED (1 << 5)
24 #define CNE_XABORT_CODE(x) (((x) >> 24) & 0xff)
29 unsigned int ret = CNE_XBEGIN_STARTED;
31 asm volatile(
".byte 0xc7,0xf8 ; .long 0" :
"+a"(ret)::
"memory");
38 asm volatile(
".byte 0x0f,0x01,0xd5" :::
"memory");
42 #define cne_xabort(status) \
44 asm volatile(".byte 0xc6,0xf8,%P0" ::"i"(status) : "memory"); \
52 asm volatile(
".byte 0x0f,0x01,0xd6 ; setnz %0" :
"=r"(out)::
"memory");
#define __cne_always_inline