|  | //===-- LeonFeatures.td - Describe the Leon Features -------*- tablegen -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // UMAC and SMAC support for LEON3 and LEON4 processors. | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | //support to casa instruction; for leon3 subtarget only | 
|  | def UMACSMACSupport : SubtargetFeature< | 
|  | "hasumacsmac", | 
|  | "HasUmacSmac", | 
|  | "true", | 
|  | "Enable UMAC and SMAC for LEON3 and LEON4 processors" | 
|  | >; | 
|  |  | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // CASA Support differs between LEON3-FT GR712RC and LEON3-FT UT699 | 
|  | // We need to have the option to switch this on and off. | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | //support to casa instruction; for leon3 subtarget only | 
|  | def LeonCASA : SubtargetFeature< | 
|  | "hasleoncasa", | 
|  | "HasLeonCasa", | 
|  | "true", | 
|  | "Enable CASA instruction for LEON3 and LEON4 processors" | 
|  | >; | 
|  |  | 
|  |  | 
|  | def ReplaceSDIV : SubtargetFeature< | 
|  | "replacesdiv", | 
|  | "PerformSDIVReplace", | 
|  | "true", | 
|  | "AT697E erratum fix: Do not emit SDIV, emit SDIVCC instead" | 
|  | >; | 
|  |  | 
|  | def InsertNOPLoad: SubtargetFeature< | 
|  | "insertnopload", | 
|  | "InsertNOPLoad", | 
|  | "true", | 
|  | "LEON3 erratum fix: Insert a NOP instruction after every single-cycle load instruction when the next instruction is another load/store instruction" | 
|  | >; | 
|  |  | 
|  | def DetectRoundChange : SubtargetFeature< | 
|  | "detectroundchange", | 
|  | "DetectRoundChange", | 
|  | "true", | 
|  | "LEON3 erratum detection: Detects any rounding mode change " | 
|  | "request: use only the round-to-nearest rounding mode" | 
|  | >; | 
|  |  | 
|  | def FixAllFDIVSQRT : SubtargetFeature< | 
|  | "fixallfdivsqrt", | 
|  | "FixAllFDIVSQRT", | 
|  | "true", | 
|  | "LEON erratum fix: Fix FDIVS/FDIVD/FSQRTS/FSQRTD instructions with NOPs and floating-point store" | 
|  | >; |