summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-07-07 21:53:07 +0000
committerBill Wendling <isanbard@gmail.com>2009-07-07 21:53:07 +0000
commit7a87a78c6c4bf0a76bc42fa7ff78b20a2c083d4c (patch)
tree5e905b67f18642c9c2d2ea8a9cb61a7ccb5c3800 /llvm/lib/CodeGen
parent425038cc6d59bdb57d9146af419d248582c4ca78 (diff)
downloadbcm5719-llvm-7a87a78c6c4bf0a76bc42fa7ff78b20a2c083d4c.tar.gz
bcm5719-llvm-7a87a78c6c4bf0a76bc42fa7ff78b20a2c083d4c.zip
DWARF requires frame moves be specified at specific times. If you have a
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
Diffstat (limited to 'llvm/lib/CodeGen')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud