Daniel,

We generate following DWARF2 instructions for stack alignment prologue.
Basically we use expression to calculate CFA. But it run into some
segfault in libmudflap and libjava. Do you have any hints what's wrong?

  DW_CFA_def_cfa: r4 (esp) ofs 4
  DW_CFA_offset: r8 (eip) at cfa-4
  DW_CFA_nop
  DW_CFA_nop

0000001c 0000002c 00000020 FDE cie=00000000 pc=00000000..00000083
  DW_CFA_advance_loc: 1 to 00000001
  DW_CFA_def_cfa_offset: 8
  DW_CFA_offset: r7 (edi) at cfa-8
  DW_CFA_advance_loc: 4 to 00000005
  DW_CFA_def_cfa: r7 (edi) ofs 0
  DW_CFA_advance_loc: 7 to 0000000c
  DW_CFA_expression: r5 (ebp) (DW_OP_breg5: 0)
  DW_CFA_advance_loc: 37 to 00000031
  DW_CFA_def_cfa_expression (DW_OP_breg5: -4; DW_OP_deref)
  DW_CFA_expression: r6 (esi) (DW_OP_breg5: -8)
  DW_CFA_expression: r3 (ebx) (DW_OP_breg5: -12)

00000000 <_Z3bariii>:
   0:   57                      push   %edi
   1:   8d 7c 24 08             lea    0x8(%esp),%edi
   5:   83 e4 e0                and    $0xffffffe0,%esp
   8:   ff 77 fc                pushl  -0x4(%edi)
   b:   55                      push   %ebp
   c:   89 e5                   mov    %esp,%ebp
   e:   81 ec 88 00 00 00       sub    $0x88,%esp
  14:   89 45 c4                mov    %eax,-0x3c(%ebp)
  17:   89 c8                   mov    %ecx,%eax
  19:   83 c0 1e                add    $0x1e,%eax
  1c:   83 e0 f0                and    $0xfffffff0,%eax
  1f:   89 5c 24 7c             mov    %ebx,0x7c(%esp)
  23:   89 b4 24 80 00 00 00    mov    %esi,0x80(%esp)
  2a:   89 bc 24 84 00 00 00    mov    %edi,0x84(%esp)
  31:   29 c4                   sub    %eax,%esp

Thanks - Joey

Reply via email to