|  | //===-- LeonFeatures.td - Describe the Leon Features -------*- tablegen -*-===// | 
|  | // | 
|  | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  |  | 
|  | //===----------------------------------------------------------------------===// | 
|  | // 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 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" | 
|  | >; | 
|  |  | 
|  | def LeonCycleCounter | 
|  | : SubtargetFeature<"leoncyclecounter", "HasLeonCycleCounter", "true", | 
|  | "Use the Leon cycle counter register">; |