1//===- SparcASITags.td -------------------------------------*- tablegen -*-===//
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// This file defines the symbolic operands permitted for various kinds of
10// SPARCv9 ASI.
11//
12//===----------------------------------------------------------------------===//
13
14include "llvm/TableGen/SearchableTable.td"
15
16class ASITag<string name, string alt_name, bits<8> op> {
17  string Name = name;
18  // A maximum of one alias is supported right now.
19  string AltName = alt_name;
20  bits<8> Encoding = op;
21}
22
23def ASITagsList : GenericTable {
24  let FilterClass = "ASITag";
25  let Fields = ["Name", "AltName", "Encoding"];
26
27  let PrimaryKey = [ "Encoding" ];
28  let PrimaryKeyName = "lookupASITagByEncoding";
29}
30
31def lookupASITagByName : SearchIndex {
32  let Table = ASITagsList;
33  let Key = [ "Name" ];
34}
35
36def lookupASITagByAltName : SearchIndex {
37  let Table = ASITagsList;
38  let Key = [ "AltName" ];
39}
40
41def : ASITag<"ASI_N", "ASI_NUCLEUS", 0x4>;
42def : ASITag<"ASI_N_L", "ASI_NUCLEUS_LITTLE", 0xC>;
43def : ASITag<"ASI_AIUP", "ASI_AS_IF_USER_PRIMARY", 0x10>;
44def : ASITag<"ASI_AIUS", "ASI_AS_IF_USER_SECONDARY", 0x11>;
45def : ASITag<"ASI_AIUP_L", "ASI_AS_IF_USER_PRIMARY_LITTLE", 0x18>;
46def : ASITag<"ASI_AIUS_L", "ASI_AS_IF_USER_SECONDARY_LITTLE", 0x19>;
47def : ASITag<"ASI_P", "ASI_PRIMARY", 0x80>;
48def : ASITag<"ASI_S", "ASI_SECONDARY", 0x81>;
49def : ASITag<"ASI_PNF", "ASI_PRIMARY_NOFAULT", 0x82>;
50def : ASITag<"ASI_SNF", "ASI_SECONDARY_NOFAULT", 0x83>;
51def : ASITag<"ASI_P_L", "ASI_PRIMARY_LITTLE", 0x88>;
52def : ASITag<"ASI_S_L", "ASI_SECONDARY_LITTLE", 0x89>;
53def : ASITag<"ASI_PNF_L", "ASI_PRIMARY_NOFAULT_LITTLE", 0x8A>;
54def : ASITag<"ASI_SNF_L", "ASI_SECONDARY_NOFAULT_LITTLE", 0x8B>;
55