Skip to content
  1. Jul 08, 2009
  2. Jul 07, 2009
    • Devang Patel's avatar
      14fd73b0
    • Bill Wendling's avatar
      DWARF requires frame moves be specified at specific times. If you have a · 7a87a78c
      Bill Wendling authored
      prologue like this:
      
      __Z3fooi:
      Leh_func_begin1:
      LBB1_0: ## entry
              pushl   %ebp
      Llabel1:
              movl    %esp, %ebp
      Llabel2:
              pushl   %esi
      Llabel3:
              subl    $20, %esp
              call    "L1$pb"
      "L1$pb":
              popl    %esi
      
      The "pushl %ebp" needs a table entry specifying the offset. The "movl %esp,
      %ebp" makes %ebp the new stack frame register, so that needs to be specified in
      DWARF. And "pushl %esi" saves the callee-saved %esi register, which also needs
      to be specified in DWARF.
      
      Before, all of this logic was in one method. This didn't work too well, because
      as you can see there are multiple FDE line entries that need to be created.
      
      This fix creates the "MachineMove" objects directly when they're needed; instead
      of waiting until the end, and losing information.
      
      llvm-svn: 74952
      7a87a78c
Loading