diff --git a/librz/analysis/p/analysis_xtensa.c b/librz/analysis/p/analysis_xtensa.c index 1fb43084fbe..b2534f58854 100644 --- a/librz/analysis/p/analysis_xtensa.c +++ b/librz/analysis/p/analysis_xtensa.c @@ -118,6 +118,7 @@ static void xtensa_shr_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, con static void xtensa_l32r_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, const ut8 *buf) { op->type = RZ_ANALYSIS_OP_TYPE_LOAD; op->ptr = ((addr + 3) & ~3) + ((buf[2] << 8 | buf[1]) << 2) - 0x40000; + op->refptr = 4; } static void xtensa_snm0_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, const ut8 *buf) { diff --git a/test/db/analysis/xtensa b/test/db/analysis/xtensa index a6a5238f6dc..e6e5c4e6ef3 100644 --- a/test/db/analysis/xtensa +++ b/test/db/analysis/xtensa @@ -26,3 +26,18 @@ var int32_t var_8h @ stack - 0x8 var int32_t var_4h @ stack - 0x4 EOF RUN + + +NAME=xtensa l32r refptr +FILE=malloc://512 +CMDS=<