1//===---- CSKYAttributeParser.h - CSKY Attribute Parser ---------*- C++ -*-===//
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-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_SUPPORT_CSKYATTRIBUTEPARSER_H
10#define LLVM_SUPPORT_CSKYATTRIBUTEPARSER_H
11
12#include "llvm/Support/CSKYAttributes.h"
13#include "llvm/Support/ELFAttributeParser.h"
14
15namespace llvm {
16class CSKYAttributeParser : public ELFAttributeParser {
17 struct DisplayHandler {
18 CSKYAttrs::AttrType attribute;
19 Error (CSKYAttributeParser::*routine)(unsigned);
20 };
21 static const DisplayHandler displayRoutines[];
22
23 Error dspVersion(unsigned tag);
24 Error vdspVersion(unsigned tag);
25 Error fpuVersion(unsigned tag);
26 Error fpuABI(unsigned tag);
27 Error fpuRounding(unsigned tag);
28 Error fpuDenormal(unsigned tag);
29 Error fpuException(unsigned tag);
30 Error fpuHardFP(unsigned tag);
31
32 Error handler(uint64_t tag, bool &handled) override;
33
34public:
35 CSKYAttributeParser(ScopedPrinter *sw)
36 : ELFAttributeParser(sw, CSKYAttrs::getCSKYAttributeTags(), "csky") {}
37 CSKYAttributeParser()
38 : ELFAttributeParser(CSKYAttrs::getCSKYAttributeTags(), "csky") {}
39};
40
41} // namespace llvm
42
43#endif
44

source code of llvm/include/llvm/Support/CSKYAttributeParser.h