diff options
Diffstat (limited to 'tools/llvm-readobj/ARMAttributeParser.cpp')
| -rw-r--r-- | tools/llvm-readobj/ARMAttributeParser.cpp | 19 | 
1 files changed, 15 insertions, 4 deletions
| diff --git a/tools/llvm-readobj/ARMAttributeParser.cpp b/tools/llvm-readobj/ARMAttributeParser.cpp index 688d349d7ec03..877dd71c90706 100644 --- a/tools/llvm-readobj/ARMAttributeParser.cpp +++ b/tools/llvm-readobj/ARMAttributeParser.cpp @@ -8,10 +8,10 @@  //===----------------------------------------------------------------------===//  #include "ARMAttributeParser.h" -#include "StreamWriter.h"  #include "llvm/ADT/STLExtras.h"  #include "llvm/ADT/StringExtras.h"  #include "llvm/Support/LEB128.h" +#include "llvm/Support/ScopedPrinter.h"  using namespace llvm;  using namespace llvm::ARMBuildAttrs; @@ -63,6 +63,7 @@ ARMAttributeParser::DisplayRoutines[] = {    ATTRIBUTE_HANDLER(ABI_FP_16bit_format),    ATTRIBUTE_HANDLER(MPextension_use),    ATTRIBUTE_HANDLER(DIV_use), +  ATTRIBUTE_HANDLER(DSP_extension),    ATTRIBUTE_HANDLER(T2EE_use),    ATTRIBUTE_HANDLER(Virtualization_use),    ATTRIBUTE_HANDLER(nodefaults) @@ -340,7 +341,7 @@ void ARMAttributeParser::ABI_align_needed(AttrType Tag, const uint8_t *Data,    if (Value < array_lengthof(Strings))      Description = std::string(Strings[Value]);    else if (Value <= 12) -    Description = std::string("8-byte alignment, ") + utostr(1 << Value) +    Description = std::string("8-byte alignment, ") + utostr(1ULL << Value)                  + std::string("-byte extended alignment");    else      Description = "Invalid"; @@ -361,8 +362,8 @@ void ARMAttributeParser::ABI_align_preserved(AttrType Tag, const uint8_t *Data,    if (Value < array_lengthof(Strings))      Description = std::string(Strings[Value]);    else if (Value <= 12) -    Description = std::string("8-byte stack alignment, ") + utostr(1 << Value) -                + std::string("-byte data alignment"); +    Description = std::string("8-byte stack alignment, ") + +                  utostr(1ULL << Value) + std::string("-byte data alignment");    else      Description = "Invalid"; @@ -517,6 +518,16 @@ void ARMAttributeParser::DIV_use(AttrType Tag, const uint8_t *Data,    PrintAttribute(Tag, Value, ValueDesc);  } +void ARMAttributeParser::DSP_extension(AttrType Tag, const uint8_t *Data, +                                       uint32_t &Offset) { +  static const char *const Strings[] = { "Not Permitted", "Permitted" }; + +  uint64_t Value = ParseInteger(Data, Offset); +  StringRef ValueDesc = +    (Value < array_lengthof(Strings)) ? Strings[Value] : nullptr; +  PrintAttribute(Tag, Value, ValueDesc); +} +  void ARMAttributeParser::T2EE_use(AttrType Tag, const uint8_t *Data,                                    uint32_t &Offset) {    static const char *const Strings[] = { "Not Permitted", "Permitted" }; | 
