@@ -297,7 +297,7 @@ impl X86InlineAsmReg {
297
297
_ => unreachable ! ( ) ,
298
298
}
299
299
} else if self as u32 <= Self :: di as u32 {
300
- let root = [ "si" , "di" ] [ self as usize - Self :: si as usize ] ;
300
+ let root = self . name ( ) ;
301
301
match modifier. unwrap_or ( reg_default_modifier) {
302
302
'l' => write ! ( out, "{}l" , root) ,
303
303
'x' => write ! ( out, "{}" , root) ,
@@ -306,12 +306,12 @@ impl X86InlineAsmReg {
306
306
_ => unreachable ! ( ) ,
307
307
}
308
308
} else if self as u32 <= Self :: r15 as u32 {
309
- let index = self as u32 - Self :: r8 as u32 + 8 ;
309
+ let root = self . name ( ) ;
310
310
match modifier. unwrap_or ( reg_default_modifier) {
311
- 'l' => write ! ( out, "r {}b" , index ) ,
312
- 'x' => write ! ( out, "r {}w" , index ) ,
313
- 'e' => write ! ( out, "r {}d" , index ) ,
314
- 'r' => write ! ( out, "r{}" , index ) ,
311
+ 'l' => write ! ( out, "{}b" , root ) ,
312
+ 'x' => write ! ( out, "{}w" , root ) ,
313
+ 'e' => write ! ( out, "{}d" , root ) ,
314
+ 'r' => out. write_str ( root ) ,
315
315
_ => unreachable ! ( ) ,
316
316
}
317
317
} else if self as u32 <= Self :: r15b as u32 {
@@ -329,8 +329,7 @@ impl X86InlineAsmReg {
329
329
let index = self as u32 - Self :: zmm0 as u32 ;
330
330
write ! ( out, "{}{}" , prefix, index)
331
331
} else {
332
- let index = self as u32 - Self :: k1 as u32 + 1 ;
333
- write ! ( out, "k{}" , index)
332
+ out. write_str ( self . name ( ) )
334
333
}
335
334
}
336
335
0 commit comments