4 | for Y = [32, 64, DEF] do
5 | for X = [ANDN, PDEP, PEXT, MULX] do
6 | let FLAGS = $(X=="ANDN" and ",FLAGS/w")
7 $(X86(Y)) $(X){_$(RSZ(Y))$(RSZ(Y))$(RSZ(Y))} $(RNAME("ECX",Y)), $(RNAME("EDX",Y)), $(RNAME("EBX",Y)) {|RCX/w,RDX/r,RBX/r $(FLAGS)}
8 $(X86(Y)) $(X){_$(RSZ(Y))$(RSZ(Y))M} $(RNAME("ECX",Y)), $(RNAME("EDX",Y)), [RAX] {|RCX/w,RDX/r,RAX/r $(FLAGS)}
10 | for X = [BEXTR, BZHI, SARX, SHLX, SHRX] do
11 | let FLAGS = $((X=="BEXTR" or X=="BZHI") and ",FLAGS/w")
12 $(X86(Y)) $(X){_$(RSZ(Y))$(RSZ(Y))$(RSZ(Y))} $(RNAME("ECX",Y)), $(RNAME("EDX",Y)), $(RNAME("EBX",Y)) {|RCX/w,RDX/r,RBX/r $(FLAGS)}
13 $(X86(Y)) $(X){_$(RSZ(Y))M$(RSZ(Y))} $(RNAME("ECX",Y)), [RAX], $(RNAME("EBX",Y)) {|RCX/w,RAX/r,RBX/r $(FLAGS)}
15 | for X = [BLSI, BLSMSK, BLSR] do
16 $(X86(Y)) $(X){_$(RSZ(Y))$(RSZ(Y))} $(RNAME("ECX",Y)), $(RNAME("EDX",Y)) {|RCX/w,RDX/r,FLAGS/w}
17 $(X86(Y)) $(X){_$(RSZ(Y))M} $(RNAME("ECX",Y)), [RAX] {|RCX/w,RAX/r,FLAGS/w}
19 $(X86(Y)) RORX{_$(RSZ(Y))$(RSZ(Y))I} $(RNAME("ECX",Y)), $(RNAME("EDX",Y)), 2 {|RCX/w,RDX/r}
20 $(X86(Y)) RORX{_$(RSZ(Y))MI} $(RNAME("ECX",Y)), [RAX], 2 {|RCX/w,RAX/r}