33 #ifndef ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED 34 #define ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED 98 m_root_idx(root_index),
155 m_addr_val = addr_val;
159 const bool hasAddr()
const {
return m_has_addr; };
191 void setIS(
const uint8_t IS) { m_IS = IS; };
192 const uint8_t
getIS()
const {
return m_IS; };
223 bool m_prev_addr_same;
224 uint16_t m_excep_num;
229 m_prev_addr_same(false)
248 int cancelNewest(
const int nCancel);
249 void mispredictNewest();
250 const bool isEmpty()
const {
return (m_atom.num == 0); };
274 int nRemove = (nCancel <= m_atom.
num) ? nCancel : m_atom.
num;
275 m_atom.
num -= nRemove;
282 uint32_t mask = 0x1 << (m_atom.
num - 1);
301 void setParam(
const uint32_t param,
const int nParamNum) { m_param[(nParamNum & 0x3)] = param; };
302 const uint32_t &
getParam(
const int nParamNum)
const {
return m_param[(nParamNum & 0x3)]; };
349 void pop_back(
bool pend_delete =
true);
350 void pop_front(
bool pend_delete =
true);
356 void from_front_init();
358 void erase_curr_from_front();
363 void delete_popped();
377 std::deque<TrcStackElem *> m_P0_stack;
378 std::vector<TrcStackElem *> m_popped_elem;
379 std::deque<TrcStackElem *>::iterator m_iter;
391 m_P0_stack.push_front(pElem);
397 m_P0_stack.push_back(pElem);
404 m_popped_elem.push_back(m_P0_stack.back());
405 m_P0_stack.pop_back();
411 m_popped_elem.push_back(m_P0_stack.front());
412 m_P0_stack.pop_front();
418 if (m_P0_stack.size() > 0)
422 m_P0_stack.pop_back();
429 if (m_P0_stack.size() > 0)
433 m_P0_stack.pop_front();
442 return m_P0_stack.back();
447 return m_P0_stack.front();
453 while (m_P0_stack.size() > 0)
461 while (m_popped_elem.size() > 0)
463 delete m_popped_elem.back();
464 m_popped_elem.pop_back();
466 m_popped_elem.clear();
472 return m_P0_stack.size();
475 #endif // ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED virtual ~TrcStackElemAtom()
void push_front(TrcStackElem *pElem)
const etmv4_context_t & getContext() const
virtual ~TrcStackElemCtxt()
void setInstrCount(const int instr_count)
void push_back(TrcStackElem *pElem)
virtual ~TrcStackElemParam()
enum _ocsd_etmv4_i_pkt_type ocsd_etmv4_i_pkt_type
void setPrevSame(bool bSame)
void setExcepNum(const uint16_t num)
void setAddr(const etmv4_addr_val_t &addr_val)
virtual ~TrcStackElemAddr()
const etmv4_addr_val_t & getAddr() const
const etmv4_addr_val_t & getAddr() const
enum _ocsd_atm_val ocsd_atm_val
TrcStackElemExcept(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
void setParam(const uint32_t param, const int nParamNum)
TrcStackElemParam(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
TrcStackElemAtom(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const trace_marker_payload_t & getMarker() const
OpenCSD : Decoder Output Generic Element types.
void setContext(const etmv4_context_t &ctxt)
void setAddr(const etmv4_addr_val_t &addr_val)
virtual ~TrcStackElemMarker()
const ocsd_etmv4_i_pkt_type getRootPkt() const
TrcStackElemCtxt(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const bool isEmpty() const
const ocsd_atm_val commitOldest()
TrcStackElemMarker(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
TrcStackQElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const ocsd_trc_index_t getRootIndex() const
TrcStackElemAddr(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const int getInstrCount() const
enum _p0_elem_t p0_elem_t
const uint8_t getIS() const
void setAtom(const ocsd_pkt_atom &atom)
void setMarker(const trace_marker_payload_t &marker)
uint32_t ocsd_trc_index_t
const uint16_t getExcepNum() const
ocsd_vaddr_t val
Address value.
void pop_back(bool pend_delete=true)
TrcStackElem(const p0_elem_t p0_type, const bool isP0, const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index)
const p0_elem_t getP0Type() const
const bool getPrevSame() const
uint8_t isa
instruction set.
virtual ~TrcStackElemExcept()
const uint32_t & getParam(const int nParamNum) const
void setIS(const uint8_t IS)
const bool hasAddr() const
int cancelNewest(const int nCancel)
void pop_front(bool pend_delete=true)