Hi Mike,
On Wed, Dec 12, 2018 at 03:29:18PM +0000, Mike Leach wrote:
Hi Leo,
Sorry missed this...
No worry.
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,
I did a search, JAZELLE is used at early time (ARMv5/v6).
Anyway, I will change to CS_ETMV3_EXC_JAZELLE_THUMBEE for more accuration, but if you prefer simple name CS_ETMV3_EXC_THUMBEE please let me know.
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.
In the first version will use by default exception type. later we can consider to add extra flag to indicate "implementation defined'.
Thanks for suggestions.
Thanks, Leo Yan