diff options
author | Samuel Huang <huangs@chromium.org> | 2018-03-13 21:35:53 +0000 |
---|---|---|
committer | Edward Lesmes <ehmaldonado@google.com> | 2021-07-23 21:52:01 +0000 |
commit | 56a6ff47bca7087db1916b2beeedee283cd1caf2 (patch) | |
tree | 4dba54508860de2e38422e938f49a9d8b9666155 /disassembler.h | |
parent | 06f1ae9aaca969ee95ef840f22b6b461c304542d (diff) | |
download | zucchini-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.h')
-rw-r--r-- | disassembler.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/disassembler.h b/disassembler.h index 8d41eaa..eced3cf 100644 --- a/disassembler.h +++ b/disassembler.h @@ -111,11 +111,13 @@ class Disassembler { // Groups must be aggregated by pool. virtual std::vector<ReferenceGroup> MakeReferenceGroups() const = 0; - ConstBufferView GetImage() const { return image_; } + ConstBufferView image() const { return image_; } size_t size() const { return image_.size(); } + int num_equivalence_iterations() const { return num_equivalence_iterations_; } + protected: - Disassembler(); + explicit Disassembler(int num_equivalence_iterations); // Parses |image| and initializes internal states. Returns true on success. // This must be called once and before any other operation. @@ -125,6 +127,10 @@ class Disassembler { // only the portion containing the executable file it recognizes. ConstBufferView image_; + // The number of iterations to run for equivalence map generation. This should + // roughly be the max length of reference indirection chains. + int num_equivalence_iterations_; + DISALLOW_COPY_AND_ASSIGN(Disassembler); }; |