|
From: <sv...@va...> - 2008-01-14 12:04:09
|
Author: sewardj
Date: 2008-01-14 12:04:11 +0000 (Mon, 14 Jan 2008)
New Revision: 7347
Log:
Handle DW_OP_plus_uconst. Possibly fixes #155091 (not yet confirmed
by reporter).
Modified:
trunk/coregrind/m_debuginfo/readdwarf.c
Modified: trunk/coregrind/m_debuginfo/readdwarf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf.c 2008-01-14 11:54:56 UTC (rev 7346)
+++ trunk/coregrind/m_debuginfo/readdwarf.c 2008-01-14 12:04:11 UTC (rev 7347)
@@ -2638,6 +2638,7 @@
Int ix, ix2, reg;
UChar opcode;
Word sw;
+ UWord uw;
CfiOp op;
HChar* opname;
@@ -2712,6 +2713,16 @@
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 );
|