Hi Leo,
Sorry missed this... On Wed, 12 Dec 2018 at 14:42, leo.yan@linaro.org wrote:
Hi Mike,
On Wed, Dec 12, 2018 at 12:48:54PM +0000, Mike Leach wrote:
[...]
+static bool cs_etm__is_sync_exception(struct cs_etm_queue *etmq) +{
struct cs_etm_auxtrace *etm = etmq->etm;
int cpu = etmq->packet->cpu;
if (etm->metadata[cpu][CS_ETM_MAGIC] == __perf_cs_etmv3_magic)
if (etmq->exc_num == CS_ETMV3_EXC_SMC ||
etmq->exc_num == CS_ETMV3_EXC_HYP ||
etmq->exc_num == CS_ETMV3_EXC_JAZELLE ||
etmq->exc_num == CS_ETMV3_EXC_UNDEFINED_INSTR ||
etmq->exc_num == CS_ETMV3_EXC_PREFETCH_ABORT ||
etmq->exc_num == CS_ETMV3_EXC_DATA_FAULT ||
etmq->exc_num == CS_ETMV3_EXC_GENERIC)
return true;
Mike, could you help confirm what's the exception type for CS_ETMV3_EXC_JAZELLE/CS_ETMV3_EXC_UNDEFINED_INSTR/CS_ETMV3_EXC_GENERIC?
Are they synchronous exceptions?
JAZELLE - more accurately renamed THUMBEE in PTM, and undefined instruction are synchronous as occur as a result of attempt to execute instuctions. Generic exception is used for implementation defined exceptions - which could be either type.
Mike.
Could you help to confirm for this part, thanks!
[...]
Thanks, Leo Yan