OLD | NEW |
| (Empty) |
1 @hex: | |
2 # Test that we correctly check both implicit arguments to movsb | |
3 | |
4 # Valid case, within bundle | |
5 # 0000000000000000: 89 f6 mov %esi, %es
i | |
6 # 0000000000000002: 49 8d 34 37 lea %rsi, [%r
15+%rsi*1] | |
7 # 0000000000000006: 89 ff mov %edi, %ed
i | |
8 # 0000000000000008: 49 8d 3c 3f lea %rdi, [%r
15+%rdi*1] | |
9 # 000000000000000c: a4 movsb | |
10 89 f6 | |
11 49 8d 34 37 | |
12 89 ff | |
13 49 8d 3c 3f | |
14 a4 | |
15 | |
16 # Nop spacer. | |
17 90 90 90 90 90 90 90 90 | |
18 90 90 90 90 90 90 90 90 | |
19 90 | |
20 | |
21 # invalid case, crosses bundle | |
22 # 000000000000001e: 89 f6 mov %esi, %es
i | |
23 # 0000000000000020: 49 8d 34 37 lea %rsi, [%r
15+%rsi*1] | |
24 # 0000000000000024: 89 ff mov %edi, %ed
i | |
25 # 0000000000000026: 49 8d 3c 3f lea %rdi, [%r
15+%rdi*1] | |
26 # 000000000000002a: a4 movsb | |
27 89 f6 | |
28 49 8d 34 37 | |
29 89 ff | |
30 49 8d 3c 3f | |
31 a4 | |
32 @rval: | |
33 VALIDATOR: Checking jump targets: 0 to 2b | |
34 VALIDATOR: Checking that basic blocks are aligned | |
35 VALIDATOR: ERROR: 20: Bad basic block alignment. | |
36 *** <input> IS UNSAFE *** | |
37 @dis: | |
38 0000000000000000: 89 f6 mov %esi, %esi | |
39 0000000000000002: 49 8d 34 37 lea %rsi, [%r15
+%rsi*1] | |
40 0000000000000006: 89 ff mov %edi, %edi | |
41 0000000000000008: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
42 000000000000000c: a4 movsb [%rdi], [
%rsi] | |
43 000000000000000d: 90 nop | |
44 000000000000000e: 90 nop | |
45 000000000000000f: 90 nop | |
46 0000000000000010: 90 nop | |
47 0000000000000011: 90 nop | |
48 0000000000000012: 90 nop | |
49 0000000000000013: 90 nop | |
50 0000000000000014: 90 nop | |
51 0000000000000015: 90 nop | |
52 0000000000000016: 90 nop | |
53 0000000000000017: 90 nop | |
54 0000000000000018: 90 nop | |
55 0000000000000019: 90 nop | |
56 000000000000001a: 90 nop | |
57 000000000000001b: 90 nop | |
58 000000000000001c: 90 nop | |
59 000000000000001d: 90 nop | |
60 000000000000001e: 89 f6 mov %esi, %esi | |
61 0000000000000020: 49 8d 34 37 lea %rsi, [%r15
+%rsi*1] | |
62 0000000000000024: 89 ff mov %edi, %edi | |
63 0000000000000026: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
64 000000000000002a: a4 movsb [%rdi], [
%rsi] | |
65 @rdfa_output: | |
66 2a: [0] unrecognized instruction | |
67 return code: 1 | |
68 @validators_disagree: | |
69 Zero-extending happened in the end of the bundle, so old validator | |
70 reported that sequence crossed bundle boundary, and RDFA validator | |
71 did not allow string instruction with improperly prepared %rsi. | |
72 | |
73 errors reported by old validator but not by rdfa one: | |
74 0x20 | |
75 errors reported by rdfa validator but not by old one: | |
76 0x2a | |
OLD | NEW |