Sparc.h revision 1162ed290055d0f9005fdd8587034b86312afb12
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===-- SparcV8.h - Top-level interface for SparcV8 representation -*- C++ -*-//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file was developed by the LLVM research group and is distributed under
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the University of Illinois Open Source License. See LICENSE.TXT for details.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file contains the entry points for global functions defined in the LLVM
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// SparcV8 back-end.
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)//
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef TARGET_SPARCV8_H
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define TARGET_SPARCV8_H
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include <iosfwd>
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace llvm {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  class FunctionPass;
23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  class TargetMachine;
24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  FunctionPass *createSparcV8SimpleInstructionSelector(TargetMachine &TM);
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  FunctionPass *createSparcV8CodePrinterPass(std::ostream &OS,
27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                             TargetMachine &TM);
28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  FunctionPass *createSparcV8DelaySlotFillerPass(TargetMachine &TM);
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  FunctionPass *createSparcV8FPMoverPass(TargetMachine &TM);
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // end namespace llvm;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Defines symbolic names for SparcV8 registers.  This defines a mapping from
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// register name to register number.
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SparcV8GenRegisterNames.inc"
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Defines symbolic names for the SparcV8 instructions.
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SparcV8GenInstrNames.inc"
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)