1f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov//==-- MSP430.h - Top-level interface for MSP430 representation --*- C++ -*-==// 2f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// 3f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// The LLVM Compiler Infrastructure 4f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// 5f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// This file is distributed under the University of Illinois Open Source 6f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// License. See LICENSE.TXT for details. 7f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// 8f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov//===----------------------------------------------------------------------===// 9f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// 10f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// This file contains the entry points for global functions defined in 11f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// the LLVM MSP430 backend. 12f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov// 13f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov//===----------------------------------------------------------------------===// 14f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov 15f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov#ifndef LLVM_TARGET_MSP430_H 16f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov#define LLVM_TARGET_MSP430_H 17f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov 18c60f9b752381baa6c4b80c0739034660f1748c84Evan Cheng#include "MCTargetDesc/MSP430MCTargetDesc.h" 1960871cb40ce2df662e8361b1215f5a9431d54dd7Anton Korobeynikov#include "llvm/Target/TargetMachine.h" 2060871cb40ce2df662e8361b1215f5a9431d54dd7Anton Korobeynikov 213926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikovnamespace MSP430CC { 223926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov // MSP430 specific condition code. 233926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov enum CondCodes { 243926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_E = 0, // aka COND_Z 253926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_NE = 1, // aka COND_NZ 263926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_HS = 2, // aka COND_C 273926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_LO = 3, // aka COND_NC 283926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_GE = 4, 293926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_L = 5, 303926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov 313926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov COND_INVALID = -1 323926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov }; 333926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov} 343926fb63c24ceeefc0215b8e14eb81c85403639eAnton Korobeynikov 35f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikovnamespace llvm { 36f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov class MSP430TargetMachine; 37f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov class FunctionPass; 3871847813bc419f7a0667468136a07429c6d9f164David Greene class formatted_raw_ostream; 39f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov 4060871cb40ce2df662e8361b1215f5a9431d54dd7Anton Korobeynikov FunctionPass *createMSP430ISelDag(MSP430TargetMachine &TM, 4160871cb40ce2df662e8361b1215f5a9431d54dd7Anton Korobeynikov CodeGenOpt::Level OptLevel); 424cb1e13769856716261a4d315f8202bd918502c3Daniel Dunbar 43702adaba6d7442f180c6bc0bec3a2b19e1169ed9Anton Korobeynikov FunctionPass *createMSP430BranchSelectionPass(); 44702adaba6d7442f180c6bc0bec3a2b19e1169ed9Anton Korobeynikov 45f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov} // end namespace llvm; 46f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov 47f2c3e179ecc2a6ebc259382828a5e5dc5a61d2f8Anton Korobeynikov#endif 48