xref: /freebsd/contrib/llvm-project/llvm/lib/Target/Sparc/LeonFeatures.td (revision c7a063741720ef81d4caa4613242579d12f1d605)
1//===-- LeonFeatures.td - Describe the Leon Features -------*- 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//
10//===----------------------------------------------------------------------===//
11
12
13//===----------------------------------------------------------------------===//
14// UMAC and SMAC support for LEON3 and LEON4 processors.
15//===----------------------------------------------------------------------===//
16
17//support to casa instruction; for leon3 subtarget only
18def UMACSMACSupport : SubtargetFeature<
19  "hasumacsmac",
20  "HasUmacSmac",
21  "true",
22  "Enable UMAC and SMAC for LEON3 and LEON4 processors"
23>;
24
25
26//===----------------------------------------------------------------------===//
27// CASA Support differs between LEON3-FT GR712RC and LEON3-FT UT699
28// We need to have the option to switch this on and off.
29//===----------------------------------------------------------------------===//
30
31//support to casa instruction; for leon3 subtarget only
32def LeonCASA : SubtargetFeature<
33  "hasleoncasa",
34  "HasLeonCasa",
35  "true",
36  "Enable CASA instruction for LEON3 and LEON4 processors"
37>;
38
39def InsertNOPLoad: SubtargetFeature<
40  "insertnopload",
41  "InsertNOPLoad",
42  "true",
43  "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction"
44>;
45
46def DetectRoundChange : SubtargetFeature<
47  "detectroundchange",
48  "DetectRoundChange",
49  "true",
50  "LEON3 erratum detection: Detects any rounding mode change "
51  "request: use only the round-to-nearest rounding mode"
52>;
53
54def FixAllFDIVSQRT : SubtargetFeature<
55  "fixallfdivsqrt",
56  "FixAllFDIVSQRT",
57  "true",
58  "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store"
59>;
60
61def LeonCycleCounter
62  : SubtargetFeature<"leoncyclecounter", "HasLeonCycleCounter", "true",
63                     "Use the Leon cycle counter register">;
64