|
@@ -47,14 +47,13 @@ static inline unsigned long long native_read_tscp(unsigned int *aux)
|
|
|
* it means rax *or* rdx.
|
|
|
*/
|
|
|
#ifdef CONFIG_X86_64
|
|
|
-#define DECLARE_ARGS(val, low, high) unsigned low, high
|
|
|
-#define EAX_EDX_VAL(val, low, high) ((low) | ((u64)(high) << 32))
|
|
|
-#define EAX_EDX_ARGS(val, low, high) "a" (low), "d" (high)
|
|
|
+/* Using 64-bit values saves one instruction clearing the high half of low */
|
|
|
+#define DECLARE_ARGS(val, low, high) unsigned long low, high
|
|
|
+#define EAX_EDX_VAL(val, low, high) ((low) | (high) << 32)
|
|
|
#define EAX_EDX_RET(val, low, high) "=a" (low), "=d" (high)
|
|
|
#else
|
|
|
#define DECLARE_ARGS(val, low, high) unsigned long long val
|
|
|
#define EAX_EDX_VAL(val, low, high) (val)
|
|
|
-#define EAX_EDX_ARGS(val, low, high) "A" (val)
|
|
|
#define EAX_EDX_RET(val, low, high) "=A" (val)
|
|
|
#endif
|
|
|
|