Hexagon图形分析器介绍(十八)
4.16 陷阱事件
格式:full
TRAP,CY= cyclenum ,TH= tnum ,TRAP=trapnum,ELR=addr,DPC=addr
如下:
CY=cyclenum 循环数(十进制)
TH= tnum 硬件线程数(十进制)
TRAP=trapnum 陷阱编号(十进制)
ELR=addr 异常链接寄存器 - 返回虚拟地址(带前导 0x 的十六进制)
DPC=addr 目标指令地址 - 陷阱处理程序(带前导 0x 的十六进制)
格式 :bin
4.17 流事件变化
格式 :full
COF,CY= cyclenum ,TH= tnum ,PC=addr,DPC=addr,
TYPE=(ENDLOOP0 | ENDLOOP1 | JUMPR_R31 | JUMPR | JUMP | JUMPNEW)
如下:
CY=cyclenum 循环数(十进制)
TH= tnum 硬件线程数(十进制)
PC=addr 流指令地址的变化(以0x开头的16进制)
DPC=addr 目标指令地址(以 0x 开头的十六进制)
TYPE=(ENDLOOP0 | ENDLOOP1 | JUMPR_R31 | JUMPR | JUMP | JUMPNEW)
流量变化指令类型:
❒ ENDLOOP0 — 硬件循环 0 指令序列结束
❒ ENDLOOP1 — 硬件循环 1 指令序列的结束
❒ JUMPR_R31 — 函数调用返回(通常)
❒ JUMPR — 通过寄存器直接跳转
❒ JUMP — 直接跳转到地址
❒ JUMPNEW — 根据新谓词直接跳转到地址
格式 :bin
4.18 硬件线程状态改变事件
格式 :full
HTSC,CY= cyclenum ,TH= tnum ,T0=(OFF | RUN | DEBUG | WAIT),
T1=(OFF | RUN | DEBUG | WAIT),T2=(OFF | RUN | DEBUG | WAIT),
T3=(OFF | RUN | DEBUG | WAIT),T4=(OFF | RUN | DEBUG | WAIT),
T5=(OFF | RUN | DEBUG | WAIT)
如下:
CY=cyclenum 循环数(十进制)
TH= tnum 硬件线程数(十进制)
TX=(OFF | RUN | DEBUG | WAIT)
硬件线程-X 状态:
❒ OFF — 最低功耗状态(线程状态丢失)
❒ RUN — 正常执行
❒ DEBUG — 调试状态
❒ WAIT — 空闲状态(保留线程状态)
格式 :bin
4.19 硬件线程停顿事件
格式:full
STAL,CY= cyclenum ,TH= tnum ,PC=addr,TYPE=stalltype
如下:
CY=cyclenum 循环数(十进制)
TH= tnum 硬件线程数(十进制)
PC=addr 指令地址被停止(带前导 0x 的十六进制)
类型=stalltype 停顿类型(不带引号的字符串)。 请参阅 :bin 部分中的编码表。
格式 :bin
4.20 总线读取事件
格式:full
BUSR,CY= cyclenum ,TH= tnum ,PC=addr,PA=addr,NB=numbytes
如下:
CY=cyclenum 循环数(十进制)
TH= tnum 硬件线程数(十进制)
PC=addr 发生总线访问时的指令地址(以 0x 开头的十六进制)
PA=addr 总线访问的物理地址(以 0x 开头的十六进制)
NB=numbytes 访问字节数(十进制)
格式 :bin
4.21 总线写事件
格式:full
BUSW,CY= cyclenum ,TH= tnum ,PC=addr,PA=addr,NB=numbytes
如下:
CY=cyclenum 循环数(十进制)
TH= tnum 硬件线程数(十进制)
PC=addr 发生总线访问时的指令地址(以 0x 开头的十六进制)
PA=addr 总线访问的物理地址(以 0x 开头的十六进制)
NB=numbytes 访问字节数(十进制)
格式 :bin