aboutsummaryrefslogtreecommitdiff
path: root/decoder/source/ocsd_dcd_tree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'decoder/source/ocsd_dcd_tree.cpp')
-rw-r--r--decoder/source/ocsd_dcd_tree.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/decoder/source/ocsd_dcd_tree.cpp b/decoder/source/ocsd_dcd_tree.cpp
index 49ceb92..d2c5105 100644
--- a/decoder/source/ocsd_dcd_tree.cpp
+++ b/decoder/source/ocsd_dcd_tree.cpp
@@ -51,13 +51,14 @@ DecodeTree *DecodeTree::CreateDecodeTree(const ocsd_dcd_tree_src_t src_type, uin
if(dcd_tree->initialise(src_type, formatterCfgFlags))
{
s_trace_dcd_trees.push_back(dcd_tree);
+ s_instruction_decoder.envSetAA64_errOnBadOpcode();
}
else
{
delete dcd_tree;
dcd_tree = 0;
}
- }
+ }
return dcd_tree;
}
@@ -195,9 +196,17 @@ ocsd_err_t DecodeTree::createMemAccMapper(memacc_mapper_t type /* = MEMACC_MAP_G
// set the access interface
if(m_default_mapper)
{
+ bool enableCaching;
+ int cachePageSize, cachePageNum;
+
+
m_created_mapper = true;
setMemAccessI(m_default_mapper);
m_default_mapper->setErrorLog(s_i_error_logger);
+ TrcMemAccCache::getenvMemaccCacheSizes(enableCaching, cachePageSize, cachePageNum);
+ if ((m_default_mapper->setCacheSizes(cachePageSize, cachePageNum) != OCSD_OK) ||
+ (m_default_mapper->enableCaching(enableCaching) != OCSD_OK))
+ destroyMemAccMapper();
}
return (m_default_mapper != 0) ? OCSD_OK : OCSD_ERR_MEM;