This is an archive of the discontinued LLVM Phabricator instance.

Improve instruction emulation based stack unwinding
ClosedPublic

Authored by tberghammer on Aug 11 2015, 10:16 AM.

Details

Summary

Improve instruction emulation based stack unwinding

On ARM there is no difference between a pop and a load instruction so
a register can be loaded multiple times during the function. Add check
to threat the load as a restore only if it do the restore from the
same location where the register was saved.

Diff Detail

Event Timeline

tberghammer retitled this revision from to Improve instruction emulation based stack unwinding.
tberghammer updated this object.
tberghammer added a reviewer: jasonmolenda.
tberghammer added a subscriber: lldb-commits.

Fix incorrect assert

emaste added a subscriber: emaste.Aug 18 2015, 3:51 AM
jasonmolenda accepted this revision.Aug 18 2015, 9:33 PM
jasonmolenda edited edge metadata.

Looks good to me.

This revision is now accepted and ready to land.Aug 18 2015, 9:33 PM
This revision was automatically updated to reflect the committed changes.
chying added a subscriber: chying.Aug 20 2015, 3:04 PM

It seems a bunch of darwin->android_arm tests are broken after this patch.
Could you take a look?
Here is the first build after this patch.
http://lab.llvm.org:8011/builders/lldb-x86_64-darwin-13.4/builds/4977/steps/test7/logs/stdio

tberghammer added a comment.EditedAug 21 2015, 4:53 AM

Fixed by rL245690