Lines Matching full:low
53 /* Using 64-bit values saves one instruction clearing the high half of low */
54 #define DECLARE_ARGS(val, low, high) unsigned long low, high argument
55 #define EAX_EDX_VAL(val, low, high) ((low) | (high) << 32) argument
56 #define EAX_EDX_RET(val, low, high) "=a" (low), "=d" (high) argument
58 #define DECLARE_ARGS(val, low, high) unsigned long long val argument
59 #define EAX_EDX_VAL(val, low, high) (val) argument
60 #define EAX_EDX_RET(val, low, high) "=A" (val) argument
93 DECLARE_ARGS(val, low, high); in __rdmsr()
98 : EAX_EDX_RET(val, low, high) : "c" (msr)); in __rdmsr()
100 return EAX_EDX_VAL(val, low, high); in __rdmsr()
103 static inline void notrace __wrmsr(unsigned int msr, u32 low, u32 high) in __wrmsr() argument
108 : : "c" (msr), "a"(low), "d" (high) : "memory"); in __wrmsr()
118 #define native_wrmsr(msr, low, high) \ argument
119 __wrmsr(msr, low, high)
140 DECLARE_ARGS(val, low, high); in native_read_msr_safe()
151 : [err] "=r" (*err), EAX_EDX_RET(val, low, high) in native_read_msr_safe()
154 do_trace_read_msr(msr, EAX_EDX_VAL(val, low, high), *err); in native_read_msr_safe()
155 return EAX_EDX_VAL(val, low, high); in native_read_msr_safe()
160 native_write_msr(unsigned int msr, u32 low, u32 high) in native_write_msr() argument
162 __wrmsr(msr, low, high); in native_write_msr()
165 do_trace_write_msr(msr, ((u64)high << 32 | low), 0); in native_write_msr()
170 native_write_msr_safe(unsigned int msr, u32 low, u32 high) in native_write_msr_safe() argument
181 : "c" (msr), "0" (low), "d" (high), in native_write_msr_safe()
185 do_trace_write_msr(msr, ((u64)high << 32 | low), err); in native_write_msr_safe()
203 DECLARE_ARGS(val, low, high); in rdtsc()
205 asm volatile("rdtsc" : EAX_EDX_RET(val, low, high)); in rdtsc()
207 return EAX_EDX_VAL(val, low, high); in rdtsc()
220 DECLARE_ARGS(val, low, high); in rdtsc_ordered()
239 : EAX_EDX_RET(val, low, high) in rdtsc_ordered()
243 return EAX_EDX_VAL(val, low, high); in rdtsc_ordered()
248 DECLARE_ARGS(val, low, high); in native_read_pmc()
250 asm volatile("rdpmc" : EAX_EDX_RET(val, low, high) : "c" (counter)); in native_read_pmc()
252 do_trace_rdpmc(counter, EAX_EDX_VAL(val, low, high), 0); in native_read_pmc()
253 return EAX_EDX_VAL(val, low, high); in native_read_pmc()
266 #define rdmsr(msr, low, high) \ argument
269 (void)((low) = (u32)__val); \
273 static inline void wrmsr(unsigned int msr, u32 low, u32 high) in wrmsr() argument
275 native_write_msr(msr, low, high); in wrmsr()
287 static inline int wrmsr_safe(unsigned int msr, u32 low, u32 high) in wrmsr_safe() argument
289 return native_write_msr_safe(msr, low, high); in wrmsr_safe()
293 #define rdmsr_safe(msr, low, high) \ argument
297 (*low) = (u32)__val; \
310 #define rdpmc(counter, low, high) \ argument
313 (low) = (u32)_l; \
329 #define write_tsc(low, high) wrmsr(MSR_IA32_TSC, (low), (high)) argument