Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / native_client / src / trusted / validator_x86 / testdata / 64 / string_rep_data16.test
1 @hex:
2   # Due to bug, REP(NE) is not allowed for 16-bit versions of string instructions
3   # (because there would be two non-rex prefixes: rep and data16).
4   # See http://code.google.com/p/nativeclient/issues/detail?id=1950
5   
6   # mov %edi, %edi
7   89 ff
8   # lea (%r15,%rdi,1), %rdi
9   49 8d 3c 3f
10   # rep scasw %es:(%rdi), %ax
11   66 f3 af
12 @rval:
13   VALIDATOR: 0000000000000006: 66 f3 af                                     scasw [%rdi]
14   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
15   VALIDATOR: Checking jump targets: 0 to 9
16   VALIDATOR: Checking that basic blocks are aligned
17   *** <input> IS UNSAFE ***
18 @dis:
19   0000000000000000: 89 ff                                        mov %edi, %edi
20   0000000000000002: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
21   0000000000000006: 66 f3 af                                     scasw [%rdi]
22 @rdfa_output:
23   6: [0] unrecognized instruction
24   return code: 1
25 ----------------------------------------------------------------------
26 @hex:
27   # mov %edi, %edi
28   89 ff
29   # lea (%r15,%rdi,1), %rdi
30   49 8d 3c 3f
31   # repne scasw %es:(%rdi), %ax
32   66 f2 af
33 @rval:
34   VALIDATOR: 0000000000000006: 66 f2 af                                     scasw [%rdi]
35   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
36   VALIDATOR: Checking jump targets: 0 to 9
37   VALIDATOR: Checking that basic blocks are aligned
38   *** <input> IS UNSAFE ***
39 @dis:
40   0000000000000000: 89 ff                                        mov %edi, %edi
41   0000000000000002: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
42   0000000000000006: 66 f2 af                                     scasw [%rdi]
43 @rdfa_output:
44   6: [0] unrecognized instruction
45   return code: 1
46 ----------------------------------------------------------------------
47 @hex:
48   # mov %edi, %edi
49   89 ff
50   # lea (%r15,%rdi,1), %rdi
51   49 8d 3c 3f
52   # rep stosw %ax, %es:(%rdi)
53   66 f3 ab
54 @rval:
55   VALIDATOR: 0000000000000006: 66 f3 ab                                     stosw [%rdi]
56   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
57   VALIDATOR: Checking jump targets: 0 to 9
58   VALIDATOR: Checking that basic blocks are aligned
59   *** <input> IS UNSAFE ***
60 @dis:
61   0000000000000000: 89 ff                                        mov %edi, %edi
62   0000000000000002: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
63   0000000000000006: 66 f3 ab                                     stosw [%rdi]
64 @rdfa_output:
65   6: [0] unrecognized instruction
66   return code: 1
67 ----------------------------------------------------------------------
68 @hex:
69   # mov %esi, %esi
70   89 f6
71   # lea (%r15,%rsi,1), %rsi
72   49 8d 34 37
73   # rep lodsw %ds:(%rsi), %ax
74   66 f3 ad
75 @rval:
76   VALIDATOR: 0000000000000006: 66 f3 ad                                     lodsw [%rsi]
77   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
78   VALIDATOR: Checking jump targets: 0 to 9
79   VALIDATOR: Checking that basic blocks are aligned
80   *** <input> IS UNSAFE ***
81 @dis:
82   0000000000000000: 89 f6                                        mov %esi, %esi
83   0000000000000002: 49 8d 34 37                                  lea %rsi, [%r15+%rsi*1]
84   0000000000000006: 66 f3 ad                                     lodsw [%rsi]
85 @rdfa_output:
86   6: [0] unrecognized instruction
87   return code: 1
88 ----------------------------------------------------------------------
89 @hex:
90   # mov %esi, %esi
91   89 f6
92   # lea (%r15,%rsi,1), %rsi
93   49 8d 34 37
94   # mov %edi, %edi
95   89 ff
96   # lea (%r15,%rdi,1), %rdi
97   49 8d 3c 3f
98   # rep movsw %ds:(%rsi), %es:(%rdi)
99   66 f3 a5
100 @rval:
101   VALIDATOR: 000000000000000c: 66 f3 a5                                     movsw [%rdi], [%rsi]
102   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
103   VALIDATOR: Checking jump targets: 0 to f
104   VALIDATOR: Checking that basic blocks are aligned
105   *** <input> IS UNSAFE ***
106 @dis:
107   0000000000000000: 89 f6                                        mov %esi, %esi
108   0000000000000002: 49 8d 34 37                                  lea %rsi, [%r15+%rsi*1]
109   0000000000000006: 89 ff                                        mov %edi, %edi
110   0000000000000008: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
111   000000000000000c: 66 f3 a5                                     movsw [%rdi], [%rsi]
112 @rdfa_output:
113   c: [0] unrecognized instruction
114   return code: 1
115 ----------------------------------------------------------------------
116 @hex:
117   # mov %esi, %esi
118   89 f6
119   # lea (%r15,%rsi,1), %rsi
120   49 8d 34 37
121   # mov %edi, %edi
122   89 ff
123   # lea (%r15,%rdi,1), %rdi
124   49 8d 3c 3f
125   # rep cmpsw %es:(%rdi), %ds:(%rsi)
126   66 f3 a7
127 @rval:
128   VALIDATOR: 000000000000000c: 66 f3 a7                                     cmpsw [%rdi], [%rsi]
129   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
130   VALIDATOR: Checking jump targets: 0 to f
131   VALIDATOR: Checking that basic blocks are aligned
132   *** <input> IS UNSAFE ***
133 @dis:
134   0000000000000000: 89 f6                                        mov %esi, %esi
135   0000000000000002: 49 8d 34 37                                  lea %rsi, [%r15+%rsi*1]
136   0000000000000006: 89 ff                                        mov %edi, %edi
137   0000000000000008: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
138   000000000000000c: 66 f3 a7                                     cmpsw [%rdi], [%rsi]
139 @rdfa_output:
140   c: [0] unrecognized instruction
141   return code: 1
142 ----------------------------------------------------------------------
143 @hex:
144   # mov %esi, %esi
145   89 f6
146   # lea (%r15,%rsi,1), %rsi
147   49 8d 34 37
148   # mov %edi, %edi
149   89 ff
150   # lea (%r15,%rdi,1), %rdi
151   49 8d 3c 3f
152   # repne cmpsw %es:(%rdi), %ds:(%rsi)
153   66 f2 a7
154 @rval:
155   VALIDATOR: 000000000000000c: 66 f2 a7                                     cmpsw [%rdi], [%rsi]
156   VALIDATOR: ERROR: More than one (non-REX) prefix byte specified
157   VALIDATOR: Checking jump targets: 0 to f
158   VALIDATOR: Checking that basic blocks are aligned
159   *** <input> IS UNSAFE ***
160 @dis:
161   0000000000000000: 89 f6                                        mov %esi, %esi
162   0000000000000002: 49 8d 34 37                                  lea %rsi, [%r15+%rsi*1]
163   0000000000000006: 89 ff                                        mov %edi, %edi
164   0000000000000008: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
165   000000000000000c: 66 f2 a7                                     cmpsw [%rdi], [%rsi]
166 @rdfa_output:
167   c: [0] unrecognized instruction
168   return code: 1
169 ----------------------------------------------------------------------
170 @hex:
171   # Examples of valid string instructions.
172   
173   # DATA16, but no REP/REPNE prefix:
174   # mov %edi, %edi
175   89 ff \\
176   # lea (%r15,%rdi,1), %rdi
177   49 8d 3c 3f \\
178   # scasw %es:(%rdi), %ax
179   66 af
180   
181   # REP, but no DATA16 prefix:
182   # mov %edi, %edi
183   89 ff \\
184   # lea (%r15,%rdi,1),%rdi
185   49 8d 3c 3f \\
186   # rep stosb %al, %es:(%rdi)
187   f3 aa
188 @rval:
189   VALIDATOR: Checking jump targets: 0 to 10
190   VALIDATOR: Checking that basic blocks are aligned
191   *** <input> is safe ***
192 @dis:
193   0000000000000000: 89 ff                                        mov %edi, %edi
194   0000000000000002: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
195   0000000000000006: 66 af                                        scasw [%rdi]
196   0000000000000008: 89 ff                                        mov %edi, %edi
197   000000000000000a: 49 8d 3c 3f                                  lea %rdi, [%r15+%rdi*1]
198   000000000000000e: f3 aa                                        stosb [%rdi]
199 @rdfa_output:
200   return code: 0