1 //===- BlackfinSubtarget.h - Define Subtarget for the Blackfin -*- C++ -*-====// 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 // This file declares the BLACKFIN specific subclass of TargetSubtargetInfo. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef BLACKFIN_SUBTARGET_H 15 #define BLACKFIN_SUBTARGET_H 16 17 #include "llvm/Target/TargetSubtargetInfo.h" 18 #include <string> 19 20 #define GET_SUBTARGETINFO_HEADER 21 #include "BlackfinGenSubtargetInfo.inc" 22 23 namespace llvm { 24 class StringRef; 25 26 class BlackfinSubtarget : public BlackfinGenSubtargetInfo { 27 bool sdram; 28 bool icplb; 29 bool wa_mi_shift; 30 bool wa_csync; 31 bool wa_specld; 32 bool wa_mmr_stall; 33 bool wa_lcregs; 34 bool wa_hwloop; 35 bool wa_ind_call; 36 bool wa_killed_mmr; 37 bool wa_rets; 38 public: 39 BlackfinSubtarget(const std::string &TT, const std::string &CPU, 40 const std::string &FS); 41 42 /// ParseSubtargetFeatures - Parses features string setting specified 43 /// subtarget options. Definition of function is auto generated by tblgen. 44 void ParseSubtargetFeatures(StringRef CPU, StringRef FS); 45 }; 46 47 } // end namespace llvm 48 49 #endif 50