[CompactUnwind] Fix register encoding logic
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Mon, 8 Dec 2014 18:18:32 +0000 (18:18 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Mon, 8 Dec 2014 18:18:32 +0000 (18:18 +0000)
commit27de9b0f7001d3da9423e3e9b7b17565a38c1b51
treeb8509f3ef715d1c2d955bf7c25de5676ab9de17a
parentc02393604bc898100e4c2f2b8b01074f28c81432
[CompactUnwind] Fix register encoding logic

Fix a compact unwind encoding logic bug which would try to encode
more callee saved registers than it should, leading to early bail out
in the encoding logic and abusive use of DWARF frame mode unnecessarily.

Also remove no-compact-unwind.ll which was testing the wrong thing
based on this bug and move it to valid 'compact unwind' tests. Added
other few more tests too.

llvm-svn: 223676
llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
llvm/test/CodeGen/X86/compact-unwind.ll
llvm/test/CodeGen/X86/no-compact-unwind.ll [deleted file]
llvm/test/MC/X86/compact-unwind.s [new file with mode: 0644]