blob: d667fe26519ba6bd925c64eefed5f216d39d800c [file] [log] [blame]
Jakob Stoklund Olesen2cfddbb2009-08-02 17:32:10 +00001//===- 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 TargetSubtarget.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef BLACKFIN_SUBTARGET_H
15#define BLACKFIN_SUBTARGET_H
16
17#include "llvm/Target/TargetSubtarget.h"
18#include <string>
19
20namespace llvm {
21
Jakob Stoklund Olesen2cfddbb2009-08-02 17:32:10 +000022 class BlackfinSubtarget : public TargetSubtarget {
Jakob Stoklund Olesen536764f2009-08-02 18:27:36 +000023 bool sdram;
24 bool icplb;
25 bool wa_mi_shift;
26 bool wa_csync;
27 bool wa_specld;
28 bool wa_mmr_stall;
29 bool wa_lcregs;
30 bool wa_hwloop;
31 bool wa_ind_call;
32 bool wa_killed_mmr;
33 bool wa_rets;
Jakob Stoklund Olesen2cfddbb2009-08-02 17:32:10 +000034 public:
Daniel Dunbarb711cf02009-08-02 22:11:08 +000035 BlackfinSubtarget(const std::string &TT, const std::string &FS);
Jakob Stoklund Olesen2cfddbb2009-08-02 17:32:10 +000036
37 /// ParseSubtargetFeatures - Parses features string setting specified
38 /// subtarget options. Definition of function is auto generated by tblgen.
39 std::string ParseSubtargetFeatures(const std::string &FS,
40 const std::string &CPU);
41 };
42
43} // end namespace llvm
44
45#endif