]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
CFI reader: handle DW_CFA_def_cfa_offset_sf -- FC4 needs it
authorJulian Seward <jseward@acm.org>
Sun, 15 May 2005 17:14:28 +0000 (17:14 +0000)
committerJulian Seward <jseward@acm.org>
Sun, 15 May 2005 17:14:28 +0000 (17:14 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3721

coregrind/vg_dwarf.c

index 1f5fa3b582667882c2ef60b5531f72c179c40260..438f414b6e6c5f673de1c29f020f39cf62d2ba9d 100644 (file)
@@ -957,6 +957,7 @@ enum dwarf_cfa_secondary_ops
     DW_CFA_def_cfa_register   = 0x0d,
     DW_CFA_def_cfa_offset     = 0x0e,
     DW_CFA_offset_extended_sf = 0x11, /* DWARF3 only */
+    DW_CFA_def_cfa_offset_sf  = 0x13, /* DWARF3 only */
     DW_CFA_lo_user            = 0x1c,
     DW_CFA_GNU_args_size      = 0x2e,
     DW_CFA_hi_user            = 0x3f
@@ -1458,6 +1459,12 @@ static Int run_CF_instruction ( /*MOD*/UnwindContext* ctx,
          ctx->cfa_offset = off;
          break;
 
+      case DW_CFA_def_cfa_offset_sf:
+         off = read_leb128( &instr[i], &nleb, 1);
+         i += nleb;
+         ctx->cfa_offset = off * ctx->data_a_f;
+         break;
+
       case DW_CFA_GNU_args_size:
          /* No idea what is supposed to happen.  gdb-6.3 simply
             ignores these. */