rose: move sparse iter cache to RoseEngineBlob

This enables its use for iterators written by instructions.
This commit is contained in:
Justin Viiret
2016-08-24 10:16:12 +10:00
committed by Matthew Barr
parent 13b6023a18
commit 9139123642
4 changed files with 33 additions and 35 deletions

View File

@@ -387,7 +387,7 @@ void RoseInstrSparseIterBegin::write(void *dest, RoseEngineBlob &blob,
vector<mmbit_sparse_iter> iter;
mmbBuildSparseIterator(iter, keys, num_keys);
assert(!iter.empty());
inst->iter_offset = blob.add(iter.begin(), iter.end());
inst->iter_offset = blob.add_iterator(iter);
inst->jump_table = blob.add(jump_offsets.begin(), jump_offsets.end());
// Store offsets for corresponding SPARSE_ITER_NEXT operations.
@@ -422,7 +422,7 @@ void RoseInstrSparseIterAny::write(void *dest, RoseEngineBlob &blob,
vector<mmbit_sparse_iter> iter;
mmbBuildSparseIterator(iter, keys, num_keys);
assert(!iter.empty());
inst->iter_offset = blob.add(iter.begin(), iter.end());
inst->iter_offset = blob.add_iterator(iter);
}
void RoseInstrEnginesEod::write(void *dest, RoseEngineBlob &blob,