aboutsummaryrefslogtreecommitdiff
path: root/disassembler.h
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.h
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.h')
-rw-r--r--disassembler.h10
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);
};