]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/Sparc/LeonFeatures.td
Merge clang 7.0.1 and several follow-up changes
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / Sparc / LeonFeatures.td
1 //===-- LeonFeatures.td - Describe the Leon Features -------*- tablegen -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 //
11 //===----------------------------------------------------------------------===//
12
13
14 //===----------------------------------------------------------------------===//
15 // UMAC and SMAC support for LEON3 and LEON4 processors.
16 //===----------------------------------------------------------------------===//
17
18 //support to casa instruction; for leon3 subtarget only
19 def UMACSMACSupport : SubtargetFeature<
20   "hasumacsmac", 
21   "HasUmacSmac", 
22   "true", 
23   "Enable UMAC and SMAC for LEON3 and LEON4 processors"
24 >;
25
26
27 //===----------------------------------------------------------------------===//
28 // CASA Support differs between LEON3-FT GR712RC and LEON3-FT UT699
29 // We need to have the option to switch this on and off.
30 //===----------------------------------------------------------------------===//
31
32 //support to casa instruction; for leon3 subtarget only
33 def LeonCASA : SubtargetFeature<
34   "hasleoncasa", 
35   "HasLeonCasa", 
36   "true", 
37   "Enable CASA instruction for LEON3 and LEON4 processors"
38 >;
39
40 def InsertNOPLoad: SubtargetFeature<
41   "insertnopload",
42   "InsertNOPLoad",
43   "true",
44   "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction" 
45 >;
46
47 def DetectRoundChange : SubtargetFeature<
48   "detectroundchange",
49   "DetectRoundChange",
50   "true",
51   "LEON3 erratum detection: Detects any rounding mode change "
52   "request: use only the round-to-nearest rounding mode"
53 >;
54
55 def FixAllFDIVSQRT : SubtargetFeature<
56   "fixallfdivsqrt",
57   "FixAllFDIVSQRT",
58   "true",
59   "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store" 
60 >;