blob: e2282abbbdba34bf808961604a580a6a996fcbb8 [file] [log] [blame]
Chris Dewhurste3b86452016-05-09 11:55:15 +00001//===-- 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
19def UMACSMACSupport : SubtargetFeature<
20 "hasumacsmac",
21 "HasUmacSmac",
22 "true",
23 "Enable UMAC and SMAC for LEON3 and LEON4 processors"
24>;
Chris Dewhurst7d8412f2016-05-16 11:02:00 +000025
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
33def LeonCASA : SubtargetFeature<
34 "hasleoncasa",
35 "HasLeonCasa",
36 "true",
37 "Enable CASA instruction for LEON3 and LEON4 processors"
38>;
Chris Dewhurst4f7cac32016-05-23 10:56:36 +000039
40def 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>;
Chris Dewhurst0c1e0022016-06-19 11:03:28 +000046
47def FixFSMULD : SubtargetFeature<
48 "fixfsmuld",
49 "FixFSMULD",
50 "true",
51 "LEON erratum fix: Do not use FSMULD"
52>;
53
54def ReplaceFMULS : SubtargetFeature<
55 "replacefmuls",
56 "ReplaceFMULS",
57 "true",
58 "LEON erratum fix: Replace FMULS instruction with FMULD and relevant conversion instructions"
59>;
60
61def FixAllFDIVSQRT : SubtargetFeature<
62 "fixallfdivsqrt",
63 "FixAllFDIVSQRT",
64 "true",
65 "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store"
66>;