llvm/lib/Object
Simon Atanasyan 84a0dc323d [YAML] Add an optional argument EnumMask to the yaml::IO::bitSetCase().
Some bit-set fields used in ELF file headers in fact contain two parts.
The first one is a regular bit-field. The second one is an enumeraion.
For example ELF header `e_flags` for MIPS target might contain the
following values:

Bit-set values:

  EF_MIPS_NOREORDER = 0x00000001
  EF_MIPS_PIC       = 0x00000002
  EF_MIPS_CPIC      = 0x00000004
  EF_MIPS_ABI2      = 0x00000020

Enumeration:

  EF_MIPS_ARCH_32   = 0x50000000
  EF_MIPS_ARCH_64   = 0x60000000
  EF_MIPS_ARCH_32R2 = 0x70000000
  EF_MIPS_ARCH_64R2 = 0x80000000

For printing bit-sets we use the `yaml::IO::bitSetCase()`. It does not
support bit-set/enumeration combinations and prints too many flags from
an enumeration part. This patch fixes this problem. New method
`yaml::IO::maskedBitSetCase()` handle "enumeration" part of bitset
defined by provided mask.

Patch reviewed by Nick Kledzik and Sean Silva.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209504 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-23 08:07:09 +00:00
..
Archive.cpp Remove last uses of OwningPtr from llvm. As far as I can tell these method versions are not used by lldb, lld, or clang. 2014-05-18 21:55:38 +00:00
Binary.cpp Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
CMakeLists.txt ELFObjectWriter: deduplicate suffices in strtab 2014-04-30 16:25:02 +00:00
COFFObjectFile.cpp [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
COFFYAML.cpp obj2yaml: Don't crash if the characteristics field is zero 2014-04-09 16:38:15 +00:00
ELF.cpp [Mips] Add more relocation types and MIPS specific e_flags constants. 2014-05-20 09:27:49 +00:00
ELFObjectFile.cpp Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
ELFYAML.cpp [YAML] Add an optional argument EnumMask to the yaml::IO::bitSetCase(). 2014-05-23 08:07:09 +00:00
Error.cpp Support: Make error_category's constructor public 2014-03-15 04:05:59 +00:00
IRObjectFile.cpp Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
LLVMBuild.txt LLVMBuild.txt: Add missing dependencies. 2014-04-10 11:16:47 +00:00
MachOObjectFile.cpp Update MachOObjectFile::getSymbolAddress so it returns UnknownAddressOrSize 2014-05-20 23:04:47 +00:00
MachOUniversal.cpp Teach llvm-nm to know about fat archives (aka MachOUniversal files 2014-05-14 21:18:50 +00:00
Makefile
Object.cpp Convert getFileOffset to getOffset and move it to its only user. 2014-04-21 13:45:32 +00:00
ObjectFile.cpp Replace OwningPtr<T> with std::unique_ptr<T>. 2014-03-06 05:51:42 +00:00
StringTableBuilder.cpp ELFObjectWriter: deduplicate suffices in strtab 2014-04-30 16:25:02 +00:00
SymbolicFile.cpp Add a SymbolicFile interface between Binary and ObjectFile. 2014-02-21 20:10:59 +00:00
YAML.cpp Object: Don't double-escape empty hexdata 2014-03-20 06:28:52 +00:00