diff options
author | Charles Davis <cdavis@mines.edu> | 2011-05-25 21:43:45 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2011-05-25 21:43:45 +0000 |
commit | 410ef2b263e92d3de1b2acff7437059400daed7d (patch) | |
tree | 7ef4c026f98f34a6c6c4b99110ff0ceb933cf438 /test/MC | |
parent | 7bb1c4054986e51682ff89170c740cc16b921236 (diff) | |
download | llvm-410ef2b263e92d3de1b2acff7437059400daed7d.tar.gz llvm-410ef2b263e92d3de1b2acff7437059400daed7d.tar.bz2 llvm-410ef2b263e92d3de1b2acff7437059400daed7d.tar.xz |
Add tests for .seh_setframe and .seh_handlerdata parsing. Fix issues with
them.
I had to add a special SwitchSectionNoChange method to MCStreamer just for
.seh_handlerdata. If this isn't OK, please let me know, and I'll find some
other way to fix .seh_handlerdata streaming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132084 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/AsmParser/directive_seh.s | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/MC/AsmParser/directive_seh.s b/test/MC/AsmParser/directive_seh.s index 8b27542fb3..d4f7625e88 100644 --- a/test/MC/AsmParser/directive_seh.s +++ b/test/MC/AsmParser/directive_seh.s @@ -5,8 +5,13 @@ # CHECK: .seh_stackalloc 24 # CHECK: .seh_savereg 6, 16 # CHECK: .seh_savexmm 8, 0 +# CHECK: .seh_pushreg 3 +# CHECK: .seh_setframe 3, 0 # CHECK: .seh_endprologue # CHECK: .seh_handler __C_specific_handler, @except +# CHECK-NOT: .section{{.*}}.xdata +# CHECK: .seh_handlerdata +# CHECK: .text # CHECK: .seh_endproc .text @@ -21,8 +26,17 @@ func: .seh_savereg %rsi, 16 movups %xmm8, (%rsp) .seh_savexmm %xmm8, 0 + pushq %rbx + .seh_pushreg 3 + mov %rsp, %rbx + .seh_setframe 3, 0 .seh_endprologue .seh_handler __C_specific_handler, @except + .seh_handlerdata + .long 0 + .text + lea (%rbx), %rsp + pop %rbx addq $24, %rsp ret .seh_endproc |