Handle DW_OP_plus_uconst. Possibly fixes #155091 (not yet confirmed

by reporter).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7347
This commit is contained in:
Julian Seward 2008-01-14 12:04:11 +00:00
parent 22b3fe2a3e
commit 61b40d2d66

View File

@ -2638,6 +2638,7 @@ static Int dwarfexpr_to_dag ( UnwindContext* ctx,
Int ix, ix2, reg;
UChar opcode;
Word sw;
UWord uw;
CfiOp op;
HChar* opname;
@ -2712,6 +2713,16 @@ static Int dwarfexpr_to_dag ( UnwindContext* ctx,
VG_(printf)("DW_OP_breg%d: %ld", reg, sw);
break;
case DW_OP_plus_uconst:
uw = read_leb128U( &expr );
PUSH( ML_(CfiExpr_Const)( dst, uw ) );
POP( ix );
POP( ix2 );
PUSH( ML_(CfiExpr_Binop)( dst, op, ix2, ix ) );
if (ddump_frames)
VG_(printf)("DW_OP_plus_uconst: %lu", uw);
break;
case DW_OP_const4s:
/* push: 32-bit signed immediate */
sw = read_le_s_encoded_literal( expr, 4 );