Lines Matching refs:ecx
29 static __always_inline void __monitor(const void *eax, unsigned long ecx,
32 /* "monitor %eax, %ecx, %edx;" */
34 :: "a" (eax), "c" (ecx), "d"(edx));
37 static __always_inline void __monitorx(const void *eax, unsigned long ecx,
40 /* "monitorx %eax, %ecx, %edx;" */
42 :: "a" (eax), "c" (ecx), "d"(edx));
45 static __always_inline void __mwait(unsigned long eax, unsigned long ecx)
49 /* "mwait %eax, %ecx;" */
51 :: "a" (eax), "c" (ecx));
81 unsigned long ecx)
85 /* "mwaitx %eax, %ebx, %ecx;" */
87 :: "a" (eax), "b" (ebx), "c" (ecx));
99 static __always_inline void __sti_mwait(unsigned long eax, unsigned long ecx)
102 /* "mwait %eax, %ecx;" */
104 :: "a" (eax), "c" (ecx));
117 static __always_inline void mwait_idle_with_hints(unsigned long eax, unsigned long ecx)
129 if (ecx & 1) {
130 __mwait(eax, ecx);
132 __sti_mwait(eax, ecx);
146 static inline void __tpause(u32 ecx, u32 edx, u32 eax)
148 /* "tpause %ecx, %edx, %eax;" */
150 asm volatile("tpause %%ecx\n"
152 : "c"(ecx), "d"(edx), "a"(eax));
156 : "c"(ecx), "d"(edx), "a"(eax));