Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/Mips/Mips16HardFloatInfo.h
35269 views
1
//===---- Mips16HardFloatInfo.h for Mips16 Hard Float --------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file defines some data structures relevant to the implementation of
10
// Mips16 hard float.
11
//
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_LIB_TARGET_MIPS_MIPS16HARDFLOATINFO_H
16
#define LLVM_LIB_TARGET_MIPS_MIPS16HARDFLOATINFO_H
17
18
namespace llvm {
19
20
namespace Mips16HardFloatInfo {
21
22
// Return types that matter for hard float are:
23
// float, double, complex float, and complex double
24
//
25
enum FPReturnVariant { FRet, DRet, CFRet, CDRet, NoFPRet };
26
27
//
28
// Parameter type that matter are float, (float, float), (float, double),
29
// double, (double, double), (double, float)
30
//
31
enum FPParamVariant { FSig, FFSig, FDSig, DSig, DDSig, DFSig, NoSig };
32
33
struct FuncSignature {
34
FPParamVariant ParamSig;
35
FPReturnVariant RetSig;
36
};
37
38
struct FuncNameSignature {
39
const char *Name;
40
FuncSignature Signature;
41
};
42
43
extern const FuncNameSignature PredefinedFuncs[];
44
45
extern FuncSignature const *findFuncSignature(const char *name);
46
}
47
}
48
49
#endif
50
51