2 # Sample of updating subregisters of protected registers rsp, rbp, and r15
3 # 66 29 c4 sub %sp, %ax
4 # 66 29 c5 sub %bp, %ax
5 # 47 29 c7 sub %r15d, %r8d
10 VALIDATOR: 0000000000000000: 66 29 c4 sub %sp, %ax
11 VALIDATOR: ERROR: Changing RegSP changes the value of RegRSP
12 VALIDATOR: 0000000000000003: 66 29 c5 sub %bp, %ax
13 VALIDATOR: ERROR: Changing RegBP changes the value of RegRBP
14 VALIDATOR: 0000000000000006: 47 29 c7 sub %r15d, %r8d
15 VALIDATOR: ERROR: Changing RegR15D changes the value of RegR15
16 VALIDATOR: Checking jump targets: 0 to 9
17 VALIDATOR: Checking that basic blocks are aligned
18 *** <input> IS UNSAFE ***
20 VALIDATOR: 0000000000000000: 66 29 c4 sub %sp, %ax
21 VALIDATOR: ERROR: Changing RegSP changes the value of RegRSP
22 VALIDATOR: 0000000000000003: 66 29 c5 sub %bp, %ax
23 VALIDATOR: ERROR: Changing RegBP changes the value of RegRBP
24 VALIDATOR: 0000000000000006: 47 29 c7 sub %r15d, %r8d
25 VALIDATOR: ERROR: Changing RegR15D changes the value of RegR15
26 VALIDATOR: Checking block alignment and jump targets: 0 to 9
27 *** <input> IS UNSAFE ***
29 VALIDATOR: 0000000000000000: 66 29 c4 sub %sp, %ax
30 VALIDATOR: ERROR: Changing RegSP changes the value of RegRSP
31 VALIDATOR: 0000000000000003: 66 29 c5 sub %bp, %ax
32 VALIDATOR: ERROR: Changing RegBP changes the value of RegRBP
33 VALIDATOR: 0000000000000006: 47 29 c7 sub %r15d, %r8d
34 VALIDATOR: ERROR: Changing RegR15D changes the value of RegR15
35 VALIDATOR: Checking jump targets: 0 to 9
36 VALIDATOR: Checking that basic blocks are aligned
37 *** <input> IS UNSAFE ***
39 0000000000000000: 66 29 c4 sub %sp, %ax
40 0000000000000003: 66 29 c5 sub %bp, %ax
41 0000000000000006: 47 29 c7 sub %r15d, %r8d
43 0000000000000000: 66 29 c4 sub %sp, %ax
44 0000000000000003: 66 29 c5 sub %bp, %ax
45 0000000000000006: 47 29 c7 sub %r15d, %r8d
47 0: [0] error - %spl or %sp is changed
48 3: [0] error - %bpl or %bp is changed
49 6: [0] error - %r15 is changed