@@ -17,6 +17,7 @@ def_reg_class! {
1717 kreg0,
1818 mmx_reg,
1919 x87_reg,
20+ tmm_reg,
2021 }
2122}
2223
@@ -41,6 +42,7 @@ impl X86InlineAsmRegClass {
4142 Self :: xmm_reg | Self :: ymm_reg | Self :: zmm_reg => & [ 'x' , 'y' , 'z' ] ,
4243 Self :: kreg | Self :: kreg0 => & [ ] ,
4344 Self :: mmx_reg | Self :: x87_reg => & [ ] ,
45+ Self :: tmm_reg => & [ ] ,
4446 }
4547 }
4648
@@ -80,6 +82,7 @@ impl X86InlineAsmRegClass {
8082 } ,
8183 Self :: kreg | Self :: kreg0 => None ,
8284 Self :: mmx_reg | Self :: x87_reg => None ,
85+ Self :: tmm_reg => None ,
8386 }
8487 }
8588
@@ -98,6 +101,7 @@ impl X86InlineAsmRegClass {
98101 Self :: zmm_reg => Some ( ( 'z' , "zmm0" ) ) ,
99102 Self :: kreg | Self :: kreg0 => None ,
100103 Self :: mmx_reg | Self :: x87_reg => None ,
104+ Self :: tmm_reg => None ,
101105 }
102106 }
103107
@@ -135,6 +139,7 @@ impl X86InlineAsmRegClass {
135139 } ,
136140 Self :: kreg0 => & [ ] ,
137141 Self :: mmx_reg | Self :: x87_reg => & [ ] ,
142+ Self :: tmm_reg => & [ ] ,
138143 }
139144 }
140145}
@@ -320,6 +325,14 @@ def_regs! {
320325 st5: x87_reg = [ "st(5)" ] ,
321326 st6: x87_reg = [ "st(6)" ] ,
322327 st7: x87_reg = [ "st(7)" ] ,
328+ tmm0: tmm_reg = [ "tmm0" ] % x86_64_only,
329+ tmm1: tmm_reg = [ "tmm1" ] % x86_64_only,
330+ tmm2: tmm_reg = [ "tmm2" ] % x86_64_only,
331+ tmm3: tmm_reg = [ "tmm3" ] % x86_64_only,
332+ tmm4: tmm_reg = [ "tmm4" ] % x86_64_only,
333+ tmm5: tmm_reg = [ "tmm5" ] % x86_64_only,
334+ tmm6: tmm_reg = [ "tmm6" ] % x86_64_only,
335+ tmm7: tmm_reg = [ "tmm7" ] % x86_64_only,
323336 #error = [ "bp" , "bpl" , "ebp" , "rbp" ] =>
324337 "the frame pointer cannot be used as an operand for inline asm" ,
325338 #error = [ "sp" , "spl" , "esp" , "rsp" ] =>
0 commit comments