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));
90 static __always_inline void __sti_mwait(unsigned long eax, unsigned long ecx)
93 /* "mwait %eax, %ecx;" */
95 :: "a" (eax), "c" (ecx));
108 static __always_inline void mwait_idle_with_hints(unsigned long eax, unsigned long ecx)
120 if (ecx & 1) {
121 __mwait(eax, ecx);
123 __sti_mwait(eax, ecx);
137 static inline void __tpause(u32 ecx, u32 edx, u32 eax)
139 /* "tpause %ecx, %edx, %eax;" */
141 asm volatile("tpause %%ecx\n"
143 : "c"(ecx), "d"(edx), "a"(eax));
147 : "c"(ecx), "d"(edx), "a"(eax));