aboutsummaryrefslogtreecommitdiff
path: root/disassembler_win32.cc
diff options
context:
space:
mode:
authorSamuel Huang <huangs@chromium.org>2018-03-13 21:35:53 +0000
committerEdward Lesmes <ehmaldonado@google.com>2021-07-23 21:52:01 +0000
commit56a6ff47bca7087db1916b2beeedee283cd1caf2 (patch)
tree4dba54508860de2e38422e938f49a9d8b9666155 /disassembler_win32.cc
parent06f1ae9aaca969ee95ef840f22b6b461c304542d (diff)
downloadzucchini-56a6ff47bca7087db1916b2beeedee283cd1caf2.tar.gz
[Zucchini] Zucchini-gen: Make number of CreateEquivalenceMap() generations depend on Disassembler.
The number of CreateEquivalenceMap() iterations used be constant kNumIteraitons = 2. This CL makes the value depend on architecture. Current assignment: - DisassemblerNoOp: 1, since no pointers are identified (though in this case, CreateEquivalenceMap() should not be called). - DisassemblerWin32: 2. Upcoming DisassemblerDex will use 4. Also applying generic cleanups on headers and comments. Bug: 729154 Change-Id: Ia12d98fcba500e4c81c8a5d356ce4cadf424ffde Reviewed-on: https://chromium-review.googlesource.com/961273 Reviewed-by: agrieve <agrieve@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#542919} NOKEYCHECK=True GitOrigin-RevId: 55aea0a875b80e614464fdd157d9717471f9d64f
Diffstat (limited to 'disassembler_win32.cc')
-rw-r--r--disassembler_win32.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/disassembler_win32.cc b/disassembler_win32.cc
index 5bdc503..a932bea 100644
--- a/disassembler_win32.cc
+++ b/disassembler_win32.cc
@@ -86,8 +86,9 @@ bool DisassemblerWin32<Traits>::QuickDetect(ConstBufferView image) {
return ReadWin32Header<Traits>(image, &source);
}
+// |num_equivalence_iterations_| = 2 for reloc -> abs32.
template <class Traits>
-DisassemblerWin32<Traits>::DisassemblerWin32() = default;
+DisassemblerWin32<Traits>::DisassemblerWin32() : Disassembler(2) {}
template <class Traits>
DisassemblerWin32<Traits>::~DisassemblerWin32() = default;
@@ -309,9 +310,6 @@ bool DisassemblerWin32<Traits>::ParseAndStoreRelocBlocks() {
&reloc_block_offsets_);
}
-// TODO(huangs): Print warning if too few abs32 references are found.
-// Empirically, file size / # relocs is < 100, so take 200 as the
-// threshold for warning.
template <class Traits>
bool DisassemblerWin32<Traits>::ParseAndStoreAbs32() {
if (has_parsed_abs32_)