xref: /openbsd-src/gnu/llvm/llvm/lib/Target/Sparc/LeonFeatures.td (revision 097a140d792de8b2bbe59ad827d39eabf9b4280a)
1*09467b48Spatrick//===-- LeonFeatures.td - Describe the Leon Features -------*- tablegen -*-===//
2*09467b48Spatrick//
3*09467b48Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*09467b48Spatrick// See https://llvm.org/LICENSE.txt for license information.
5*09467b48Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*09467b48Spatrick//
7*09467b48Spatrick//===----------------------------------------------------------------------===//
8*09467b48Spatrick//
9*09467b48Spatrick//
10*09467b48Spatrick//===----------------------------------------------------------------------===//
11*09467b48Spatrick
12*09467b48Spatrick
13*09467b48Spatrick//===----------------------------------------------------------------------===//
14*09467b48Spatrick// UMAC and SMAC support for LEON3 and LEON4 processors.
15*09467b48Spatrick//===----------------------------------------------------------------------===//
16*09467b48Spatrick
17*09467b48Spatrick//support to casa instruction; for leon3 subtarget only
18*09467b48Spatrickdef UMACSMACSupport : SubtargetFeature<
19*09467b48Spatrick  "hasumacsmac",
20*09467b48Spatrick  "HasUmacSmac",
21*09467b48Spatrick  "true",
22*09467b48Spatrick  "Enable UMAC and SMAC for LEON3 and LEON4 processors"
23*09467b48Spatrick>;
24*09467b48Spatrick
25*09467b48Spatrick
26*09467b48Spatrick//===----------------------------------------------------------------------===//
27*09467b48Spatrick// CASA Support differs between LEON3-FT GR712RC and LEON3-FT UT699
28*09467b48Spatrick// We need to have the option to switch this on and off.
29*09467b48Spatrick//===----------------------------------------------------------------------===//
30*09467b48Spatrick
31*09467b48Spatrick//support to casa instruction; for leon3 subtarget only
32*09467b48Spatrickdef LeonCASA : SubtargetFeature<
33*09467b48Spatrick  "hasleoncasa",
34*09467b48Spatrick  "HasLeonCasa",
35*09467b48Spatrick  "true",
36*09467b48Spatrick  "Enable CASA instruction for LEON3 and LEON4 processors"
37*09467b48Spatrick>;
38*09467b48Spatrick
39*09467b48Spatrickdef InsertNOPLoad: SubtargetFeature<
40*09467b48Spatrick  "insertnopload",
41*09467b48Spatrick  "InsertNOPLoad",
42*09467b48Spatrick  "true",
43*09467b48Spatrick  "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction"
44*09467b48Spatrick>;
45*09467b48Spatrick
46*09467b48Spatrickdef DetectRoundChange : SubtargetFeature<
47*09467b48Spatrick  "detectroundchange",
48*09467b48Spatrick  "DetectRoundChange",
49*09467b48Spatrick  "true",
50*09467b48Spatrick  "LEON3 erratum detection: Detects any rounding mode change "
51*09467b48Spatrick  "request: use only the round-to-nearest rounding mode"
52*09467b48Spatrick>;
53*09467b48Spatrick
54*09467b48Spatrickdef FixAllFDIVSQRT : SubtargetFeature<
55*09467b48Spatrick  "fixallfdivsqrt",
56*09467b48Spatrick  "FixAllFDIVSQRT",
57*09467b48Spatrick  "true",
58*09467b48Spatrick  "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store"
59*09467b48Spatrick>;
60*09467b48Spatrick
61*09467b48Spatrickdef LeonCycleCounter
62*09467b48Spatrick  : SubtargetFeature<"leoncyclecounter", "HasLeonCycleCounter", "true",
63*09467b48Spatrick                     "Use the Leon cycle counter register">;
64