Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: courgette/testdata/rel32_win32_x86_02.txt

Issue 2008253004: Refactor rel32 searching process for x64 to make it more similar to x86. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Correct far away ptr in rel32_x64_03.txt test case Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « courgette/testdata/rel32_win32_x86_01.txt ('k') | courgette/testdata/rel32_win32_x86_03.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Test rel32 jump instructions with abs32 and .reloc obstructions.
2
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
14
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
39
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.
45
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
OLDNEW
« no previous file with comments | « courgette/testdata/rel32_win32_x86_01.txt ('k') | courgette/testdata/rel32_win32_x86_03.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698