1 //===---- Mips16HardFloatInfo.h for Mips16 Hard Float --------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines some data structures relevant to the implementation of
14 //===----------------------------------------------------------------------===//
16 #ifndef LLVM_LIB_TARGET_MIPS_MIPS16HARDFLOATINFO_H
17 #define LLVM_LIB_TARGET_MIPS_MIPS16HARDFLOATINFO_H
21 namespace Mips16HardFloatInfo
{
23 // Return types that matter for hard float are:
24 // float, double, complex float, and complex double
26 enum FPReturnVariant
{ FRet
, DRet
, CFRet
, CDRet
, NoFPRet
};
29 // Parameter type that matter are float, (float, float), (float, double),
30 // double, (double, double), (double, float)
32 enum FPParamVariant
{ FSig
, FFSig
, FDSig
, DSig
, DDSig
, DFSig
, NoSig
};
34 struct FuncSignature
{
35 FPParamVariant ParamSig
;
36 FPReturnVariant RetSig
;
39 struct FuncNameSignature
{
41 FuncSignature Signature
;
44 extern const FuncNameSignature PredefinedFuncs
[];
46 extern FuncSignature
const *findFuncSignature(const char *name
);