10b57cec5SDimitry Andric //==-- MSP430.h - Top-level interface for MSP430 representation --*- C++ -*-==// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric // 90b57cec5SDimitry Andric // This file contains the entry points for global functions defined in 100b57cec5SDimitry Andric // the LLVM MSP430 backend. 110b57cec5SDimitry Andric // 120b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 130b57cec5SDimitry Andric 140b57cec5SDimitry Andric #ifndef LLVM_LIB_TARGET_MSP430_MSP430_H 150b57cec5SDimitry Andric #define LLVM_LIB_TARGET_MSP430_MSP430_H 160b57cec5SDimitry Andric 170b57cec5SDimitry Andric #include "MCTargetDesc/MSP430MCTargetDesc.h" 180b57cec5SDimitry Andric #include "llvm/Target/TargetMachine.h" 190b57cec5SDimitry Andric 200b57cec5SDimitry Andric namespace MSP430CC { 210b57cec5SDimitry Andric // MSP430 specific condition code. 220b57cec5SDimitry Andric enum CondCodes { 230b57cec5SDimitry Andric COND_E = 0, // aka COND_Z 240b57cec5SDimitry Andric COND_NE = 1, // aka COND_NZ 250b57cec5SDimitry Andric COND_HS = 2, // aka COND_C 260b57cec5SDimitry Andric COND_LO = 3, // aka COND_NC 270b57cec5SDimitry Andric COND_GE = 4, 280b57cec5SDimitry Andric COND_L = 5, 290b57cec5SDimitry Andric COND_N = 6, // jump if negative 300b57cec5SDimitry Andric COND_NONE, // unconditional 310b57cec5SDimitry Andric 320b57cec5SDimitry Andric COND_INVALID = -1 330b57cec5SDimitry Andric }; 340b57cec5SDimitry Andric } 350b57cec5SDimitry Andric 360b57cec5SDimitry Andric namespace llvm { 370b57cec5SDimitry Andric class FunctionPass; 38bdd1243dSDimitry Andric class MSP430TargetMachine; 39bdd1243dSDimitry Andric class PassRegistry; 400b57cec5SDimitry Andric 410b57cec5SDimitry Andric FunctionPass *createMSP430ISelDag(MSP430TargetMachine &TM, 425f757f3fSDimitry Andric CodeGenOptLevel OptLevel); 430b57cec5SDimitry Andric 440b57cec5SDimitry Andric FunctionPass *createMSP430BranchSelectionPass(); 450b57cec5SDimitry Andric 46*0fca6ea1SDimitry Andric void initializeMSP430DAGToDAGISelLegacyPass(PassRegistry &); 47bdd1243dSDimitry Andric 48bdd1243dSDimitry Andric } // namespace llvm 490b57cec5SDimitry Andric 500b57cec5SDimitry Andric #endif 51