@@ -176,9 +176,8 @@ static __always_inline void clflush(volatile void *__p)
176
176
177
177
static inline void clflushopt (volatile void * __p )
178
178
{
179
- alternative_io (".byte 0x3e; clflush %0" ,
180
- ".byte 0x66; clflush %0" ,
181
- X86_FEATURE_CLFLUSHOPT ,
179
+ alternative_io ("ds clflush %0" ,
180
+ "clflushopt %0" , X86_FEATURE_CLFLUSHOPT ,
182
181
"+m" (* (volatile char __force * )__p ));
183
182
}
184
183
@@ -187,13 +186,10 @@ static inline void clwb(volatile void *__p)
187
186
volatile struct { char x [64 ]; } * p = __p ;
188
187
189
188
asm volatile (ALTERNATIVE_2 (
190
- ".byte 0x3e; clflush (%[pax])" ,
191
- ".byte 0x66; clflush (%[pax])" , /* clflushopt (%%rax) */
192
- X86_FEATURE_CLFLUSHOPT ,
193
- ".byte 0x66, 0x0f, 0xae, 0x30" , /* clwb (%%rax) */
194
- X86_FEATURE_CLWB )
195
- : [p ] "+m" (* p )
196
- : [pax ] "a " (p));
189
+ "ds clflush %0" ,
190
+ "clflushopt %0" , X86_FEATURE_CLFLUSHOPT ,
191
+ "clwb %0" , X86_FEATURE_CLWB )
192
+ : "+m" (* p ));
197
193
}
198
194
199
195
#ifdef CONFIG_X86_USER_SHADOW_STACK
0 commit comments