blob: 13d8e240ab6aaa9e83fe7c1ad6cfc1d75ffc6a7f [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
22 class TargetMachine;
23 class Module;
24
25 class BlackfinSubtarget : public TargetSubtarget {
Jakob Stoklund Olesen536764f2009-08-02 18:27:36 +000026 bool sdram;
27 bool icplb;
28 bool wa_mi_shift;
29 bool wa_csync;
30 bool wa_specld;
31 bool wa_mmr_stall;
32 bool wa_lcregs;
33 bool wa_hwloop;
34 bool wa_ind_call;
35 bool wa_killed_mmr;
36 bool wa_rets;
Jakob Stoklund Olesen2cfddbb2009-08-02 17:32:10 +000037 public:
38 BlackfinSubtarget(const TargetMachine &TM, const Module &M,
39 const std::string &FS);
40
41 /// ParseSubtargetFeatures - Parses features string setting specified
42 /// subtarget options. Definition of function is auto generated by tblgen.
43 std::string ParseSubtargetFeatures(const std::string &FS,
44 const std::string &CPU);
45 };
46
47} // end namespace llvm
48
49#endif