131d157ae1ac2cd9c787dc3c1d28e64c682803844Jia Liu//===-- XCoreSubtarget.h - Define Subtarget for the XCore -------*- C++ -*-===// 2b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// 3b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// The LLVM Compiler Infrastructure 4b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// 5b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// This file is distributed under the University of Illinois Open Source 6b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// License. See LICENSE.TXT for details. 7b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// 8b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne//===----------------------------------------------------------------------===// 9b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// 105b1b4489cf3a0f56f8be0673fc5cc380a32d277bEvan Cheng// This file declares the XCore specific subclass of TargetSubtargetInfo. 11b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne// 12b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne//===----------------------------------------------------------------------===// 13b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 14b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne#ifndef XCORESUBTARGET_H 15b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne#define XCORESUBTARGET_H 16b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 175b1b4489cf3a0f56f8be0673fc5cc380a32d277bEvan Cheng#include "llvm/Target/TargetSubtargetInfo.h" 18b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne#include "llvm/Target/TargetMachine.h" 19b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne#include <string> 20b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 2194214703d97d8d9dfca88174ffc7e94820a85e62Evan Cheng#define GET_SUBTARGETINFO_HEADER 22385e930d55f3ecd3c9538823dfa5896a12461845Evan Cheng#include "XCoreGenSubtargetInfo.inc" 2394214703d97d8d9dfca88174ffc7e94820a85e62Evan Cheng 24b25baef26f03b9909b65dd5f762b38f93000445dRichard Osbornenamespace llvm { 250ddff1b5359433faf2eb1c4ff5320ddcbd42f52fEvan Chengclass StringRef; 26b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 2794214703d97d8d9dfca88174ffc7e94820a85e62Evan Chengclass XCoreSubtarget : public XCoreGenSubtargetInfo { 282d24e2a396a1d211baaeedf32148a3b657240170David Blaikie virtual void anchor(); 29b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 30b25baef26f03b9909b65dd5f762b38f93000445dRichard Osbornepublic: 31b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne /// This constructor initializes the data members to match that 323be03406c9c3b2075d5ae416499af2f15f703d6fDaniel Dunbar /// of the specified triple. 33b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne /// 34276365dd4bc0c2160f91fd8062ae1fc90c86c324Evan Cheng XCoreSubtarget(const std::string &TT, const std::string &CPU, 35276365dd4bc0c2160f91fd8062ae1fc90c86c324Evan Cheng const std::string &FS); 36b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 37b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne /// ParseSubtargetFeatures - Parses features string setting specified 38b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne /// subtarget options. Definition of function is auto generated by tblgen. 390ddff1b5359433faf2eb1c4ff5320ddcbd42f52fEvan Cheng void ParseSubtargetFeatures(StringRef CPU, StringRef FS); 40b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne}; 41b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne} // End llvm namespace 42b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne 43b25baef26f03b9909b65dd5f762b38f93000445dRichard Osborne#endif 44