Added dataflow info to instruction tests. It is not yet checked.
[jitcs.git] / tests / x86 / x86_mov_set.ins
blobf3f9032c81643a7200f94044e968fd1f81691d2b
1 | for Y = [8,16,32,64,DEF] do
2 |   let RRW = $((Y=="8" or Y=="16") and "rw" or "r")
3 $(X86(Y))  MOV{_M$(RSZ(Y))}   [RAX], $(RNAME("ECX",Y))   {|RAX/r,RCX/r}
4 $(X86(Y))  MOV{_$(RSZ(Y))$(RSZ(Y))}   $(RNAME("EAX",Y)), $(RNAME("ECX",Y)) {|RAX/$(RRW),RCX/r}
5 $(X86(Y))  MOV{_$(RSZ(Y))M}   $(RNAME("ECX",Y)), [RAX]  {|RCX/$(RRW),RAX/r}
6 | endfor
7 | for Y = [8,16,32] do
8 |   let RRW = $((Y=="8" or Y=="16") and "rw" or "r")
9   MOV{_$(RSZ(Y))I}   $(RNAME("ECX",Y)), 0x87    {|RCX/$(RRW)}
10   MOV{_M$(MSZ(Y))I}  <$(NASMSZ(Y))> [RAX], 0xab {|RAX/r}
11 | endfor
12 64:  MOV{_M64I32S} <qword> [RAX], 0x12345678  {|RAX/r}
13 64:  MOV{_DI}   RCX, 0x123456789abcdef0       {|RCX/w}
14 64:  MOV{_DI32S} RCX, -1                      {|RCX/w}
15 64:  MOV{_DI32U RCX} <ECX>, 0x1234            {|RCX/w}
17   MOV{_MI32S}   <$(NASMSZ("DEF"))> [RAX], 0x12345678 {|RAX/r}
18   MOV{_RI32S} RCX, -1            {|RCX/w}
19   MOV{_RI32U RCX} <ECX>, 0x1234  {|RCX/w}
21   PUSH{_I} <byte> 0x12              {|}
22   PUSH{_I} 0x1234                   {|}
23   PUSH{_R} RCX                      {|RCX/r}
24   PUSH{_M} <$(NASMSZ("DEF"))> [RAX] {|RAX/r}
25   POP{_M}  <$(NASMSZ("DEF"))> [RAX] {|RAX/r}
26   POP{_R} RCX                       {|RCX/w}
29 | for X = [O, NO, B, C, NAE, NB, NC, AE, E, Z, NE, NZ, BE, NA, A, NBE, S, NS, PE, P, PO, NP, L, NGE, GE, NL, LE, NG, G, NLE] do
30 |   for Y = [16, 32, 64, DEF] do
31 $(X86(Y))  CMOV$(X){_$(RSZ(Y))$(RSZ(Y))}   $(RNAME("EDX",Y)),$(RNAME("ECX",Y)) {|RDX/rw,RCX/r,FLAGS/r}
32 $(X86(Y))  CMOV$(X){_$(RSZ(Y))M}   $(RNAME("EDX",Y)),[RAX]  {|RDX/rw,RAX/r,FLAGS/r}
33 |   endfor
34 | endfor
36   CDQ       {|RDX/w,RAX/rw,FLAGS/w}
37 64:  CQO    {|RDX/w,RAX/rw,FLAGS/w}
39 | for X = [MOVZX, MOVSX] do
40 |   for Y = [32, 64, DEF] do
41 |     for Z = [8, 16] do
42 $(X86(Y))  $(X){_$(RSZ(Y))$(RSZ(Z))}    $(RNAME("ECX",Y)), $(RNAME("EDX",Z))    {|RCX/w,RDX/r}
43 $(X86(Y))  $(X){_$(RSZ(Y))M$(MSZ(Z))}   $(RNAME("ECX",Y)), <$(NASMSZ(Z))> [RAX] {|RCX/w,RAX/r}
44 |     endfor
45 |   endfor
46 | endfor
48 64:  {MOVZX_DW   RCX} <MOV ECX>, EDX           {|RCX/w,RDX/r}
49 64:  {MOVZX_DM32 RCX} <MOV ECX>, <dword> [RAX] {|RCX/w,RAX/r}
50 64:  MOVSX{_DW}   RCX, EDX                     {|RCX/w,RDX/r}
51 64:  MOVSX{_DM32} RCX, <dword> [RAX]           {|RCX/w,RAX/r}
53 32:  {MOVZX_RW}<MOV>   RCX, EDX                {|RCX/w,RDX/r}
54 32:  {MOVZX_RM32}<MOV> RCX, <dword> [RAX]      {|RCX/w,RAX/r}
55 32:  {MOVSX_RW}<MOV>   RCX, EDX                {|RCX/w,RDX/r}
56 32:  {MOVSX_RM32}<MOV> RCX, <dword> [RAX]      {|RCX/w,RAX/r}
58 64:  {MOVZX_RW    RCX} <MOV ECX>, EDX           {|RCX/w,RDX/r}
59 64:  {MOVZX_RM32  RCX} <MOV ECX>, <dword> [RAX] {|RCX/w,RAX/r}
60 64:  MOVSX{_RW}   RCX, EDX                      {|RCX/w,RDX/r}
61 64:  MOVSX{_RM32} RCX, <dword> [RAX]            {|RCX/w,RAX/r}
64 | for X = [O, NO, B, C, NAE, NB, NC, AE, E, Z, NE, NZ, BE, NA, A, NBE, S, NS, PE, P, PO, NP, L, NGE, GE, NL, LE, NG, G, NLE] do
65   SET$(X){_B}   CL            {|RCX/rw,FLAGS/r}
66   SET$(X){_M8}  <byte> [RAX]  {|RAX/r,FLAGS/r}
67 | endfor
69   MOVBE{_HM}  CX,[RAX]        {|RCX/rw,RAX/r}
70   MOVBE{_WM}  ECX,[RAX]       {|RCX/w,RAX/r}
71 64: MOVBE{_DM}  RCX,[RAX]     {|RCX/w,RAX/r}
72   MOVBE{_MH}  [RAX],CX        {|RCX/r,RAX/r}
73   MOVBE{_MW}  [RAX],ECX       {|RCX/r,RAX/r}
74 64: MOVBE{_MD}  [RAX],RCX     {|RCX/r,RAX/r}
75   MOVBE{_RM}  RCX,[RAX]       {|RCX/w,RAX/r}
76   MOVBE{_MR}  [RAX],RCX       {|RCX/r,RAX/r}