Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / courgette / testdata / rel32_win32_x86_02.txt
bloba9e5b1283d7f674088c00d2682dd496e71a7140d
1 # Test rel32 jump instructions with abs32 and .reloc obstructions.
3 # .text start RVA and end RVA
4 1000
5 3000
6 # .reloc start RVA and end RVA
7 # Typically this won't overlap with .text.
8 # Note: If we use 1020, then the algorithm would never encounter it, so the
9 # .reloc does not get skipped! This edge case is not worth fixing right now.
10 101F
11 1030
12 # End RVA
13 5000
15 # Assume ImageBase = 00400000. This does not affect the test.
16 Program:
17   00401000: 55                 push        ebp
18   00401001: 8B EC              mov         ebp,esp
19   00401003: E8 00 00 00 00     call        00401008  # Overlaps with abs32
20   00401008: E9 00 00 00 00     jmp         0040100D  # Overlaps with abs32
21   0040100D: 0F 80 00 00 00 00  jo          00401013
22   00401013: 0F 81 00 00 00 00  jno         00401019
23   00401019: 0F 82 00 00 00 00  jb          0040101F
24   0040101F: 0F 83 00 00 00 00  jae         00401025  # Overlaps with .reloc
25   00401025: 0F 84 00 00 00 00  je          0040102B  # Overlaps with .reloc
26   0040102B: 0F 85 00 00 00 00  jne         00401031  # Overlaps with .reloc
27   00401031: 0F 86 00 00 00 00  jbe         00401037
28   00401037: 0F 87 00 00 00 00  ja          0040103D
29   0040103D: 0F 88 00 00 00 00  js          00401043
30   00401043: 0F 89 00 00 00 00  jns         00401049
31   00401049: 0F 8A 00 00 00 00  jp          0040104F  # Ignored!
32   0040104F: 0F 8B 00 00 00 00  jnp         00401055  # Ignored!
33   00401055: 0F 8C 00 00 00 00  jl          0040105B  # Overlaps with abs32
34   0040105B: 0F 8D 00 00 00 00  jge         00401061  # Overlaps with abs32
35   00401061: 0F 8E 00 00 00 00  jle         00401067
36   00401067: 0F 8F 00 00 00 00  jg          0040106D
37   0040106D: 5D                 pop         ebp
38   0040106E: C3                 ret
40 Abs32:
41 1004
42 1008
43 105A  # Straddles across two instruction.
44 105F  # Same, but covers the op code (and not the target) of the second.
46 Expected:
47 # 1004
48 # 1009
49 100F
50 1015
51 101B
52 # 1021
53 # 1027
54 # 102D
55 1033
56 1039
57 103F
58 1045
59 # 1057
60 # 105D
61 1063  # Op code 0F 8E overlaps with abs32 105F, but still okay
62 1069