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 19def 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 33def LeonCASA : SubtargetFeature< 34 "hasleoncasa", 35 "HasLeonCasa", 36 "true", 37 "Enable CASA instruction for LEON3 and LEON4 processors" 38>; 39 40 41def ReplaceSDIV : SubtargetFeature< 42 "replacesdiv", 43 "PerformSDIVReplace", 44 "true", 45 "AT697E erratum fix: Do not emit SDIV, emit SDIVCC instead" 46>; 47 48def InsertNOPLoad: SubtargetFeature< 49 "insertnopload", 50 "InsertNOPLoad", 51 "true", 52 "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction" 53>; 54 55def FixFSMULD : SubtargetFeature< 56 "fixfsmuld", 57 "FixFSMULD", 58 "true", 59 "LEON erratum fix: Do not use FSMULD" 60>; 61 62def ReplaceFMULS : SubtargetFeature< 63 "replacefmuls", 64 "ReplaceFMULS", 65 "true", 66 "LEON erratum fix: Replace FMULS instruction with FMULD and relevant conversion instructions" 67>; 68 69def DetectRoundChange : SubtargetFeature< 70 "detectroundchange", 71 "DetectRoundChange", 72 "true", 73 "LEON3 erratum detection: Detects any rounding mode change " 74 "request: use only the round-to-nearest rounding mode" 75>; 76 77def FixAllFDIVSQRT : SubtargetFeature< 78 "fixallfdivsqrt", 79 "FixAllFDIVSQRT", 80 "true", 81 "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store" 82>; 83