Implement AsmParser for ARM unwind directives.
authorLogan Chien <tzuhsiang.chien@gmail.com>
Fri, 10 May 2013 16:17:24 +0000 (16:17 +0000)
committerLogan Chien <tzuhsiang.chien@gmail.com>
Fri, 10 May 2013 16:17:24 +0000 (16:17 +0000)
commitc24a374331fc97dd215937c8f0a9bf5271f39657
tree8b45dc88291c6b9a7da543364389118c4e278a8b
parent2e2c12b9961647987692389bc3cc25eae9220d26
Implement AsmParser for ARM unwind directives.

This commit implements the AsmParser for fnstart, fnend,
cantunwind, personality, handlerdata, pad, setfp, save, and
vsave directives.

This commit fixes some minor issue in the ARMELFStreamer:

* The switch back to corresponding section after the .fnend
  directive.

* Emit the unwind opcode while processing .fnend directive
  if there is no .handlerdata directive.

* Emit the unwind opcode to .ARM.extab while processing
  .handlerdata even if .personality directive does not exist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181603 91177308-0d34-0410-b5e6-96231b3b80d8
24 files changed:
lib/Target/ARM/AsmParser/ARMAsmParser.cpp
lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
test/MC/ARM/eh-compact-pr0.s [new file with mode: 0644]
test/MC/ARM/eh-compact-pr1.s [new file with mode: 0644]
test/MC/ARM/eh-directive-cantunwind-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-cantunwind.s [new file with mode: 0644]
test/MC/ARM/eh-directive-fnend-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-fnstart-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-handlerdata.s [new file with mode: 0644]
test/MC/ARM/eh-directive-pad-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-pad.s [new file with mode: 0644]
test/MC/ARM/eh-directive-personality-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-personality.s [new file with mode: 0644]
test/MC/ARM/eh-directive-save-diagnoatics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-save.s [new file with mode: 0644]
test/MC/ARM/eh-directive-section-comdat.s [new file with mode: 0644]
test/MC/ARM/eh-directive-section-multiple-func.s [new file with mode: 0644]
test/MC/ARM/eh-directive-section.s [new file with mode: 0644]
test/MC/ARM/eh-directive-setfp-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-setfp.s [new file with mode: 0644]
test/MC/ARM/eh-directive-text-section-multiple-func.s [new file with mode: 0644]
test/MC/ARM/eh-directive-text-section.s [new file with mode: 0644]
test/MC/ARM/eh-directive-vsave-diagnostics.s [new file with mode: 0644]
test/MC/ARM/eh-directive-vsave.s [new file with mode: 0644]