brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 3baa976 Raw
56 lines · cpp
1//===-- HexagonAttributeParser.cpp - Hexagon Attribute Parser -------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/Support/HexagonAttributeParser.h"10 11using namespace llvm;12 13const HexagonAttributeParser::DisplayHandler14    HexagonAttributeParser::DisplayRoutines[] = {15        {16            HexagonAttrs::ARCH,17            &ELFCompactAttrParser::integerAttribute,18        },19        {20            HexagonAttrs::HVXARCH,21            &ELFCompactAttrParser::integerAttribute,22        },23        {24            HexagonAttrs::HVXIEEEFP,25            &ELFCompactAttrParser::integerAttribute,26        },27        {28            HexagonAttrs::HVXQFLOAT,29            &ELFCompactAttrParser::integerAttribute,30        },31        {32            HexagonAttrs::ZREG,33            &ELFCompactAttrParser::integerAttribute,34        },35        {36            HexagonAttrs::AUDIO,37            &ELFCompactAttrParser::integerAttribute,38        },39        {40            HexagonAttrs::CABAC,41            &ELFCompactAttrParser::integerAttribute,42        }};43 44Error HexagonAttributeParser::handler(uint64_t Tag, bool &Handled) {45  Handled = false;46  for (const auto &R : DisplayRoutines) {47    if (uint64_t(R.Attribute) == Tag) {48      if (Error E = (this->*R.Routine)(Tag))49        return E;50      Handled = true;51      break;52    }53  }54  return Error::success();55}56