/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp
Line | Count | Source |
1 | | //===---- Mips16HardFloatInfo.cpp for Mips16 Hard Float -----===// |
2 | | // |
3 | | // The LLVM Compiler Infrastructure |
4 | | // |
5 | | // This file is distributed under the University of Illinois Open Source |
6 | | // License. See LICENSE.TXT for details. |
7 | | // |
8 | | //===----------------------------------------------------------------------===// |
9 | | // |
10 | | // This file contains the Mips16 implementation of Mips16HardFloatInfo |
11 | | // namespace. |
12 | | // |
13 | | //===----------------------------------------------------------------------===// |
14 | | |
15 | | #include "Mips16HardFloatInfo.h" |
16 | | #include <string.h> |
17 | | |
18 | | namespace llvm { |
19 | | |
20 | | namespace Mips16HardFloatInfo { |
21 | | |
22 | | const FuncNameSignature PredefinedFuncs[] = { |
23 | | { "__floatdidf", { NoSig, DRet } }, |
24 | | { "__floatdisf", { NoSig, FRet } }, |
25 | | { "__floatundidf", { NoSig, DRet } }, |
26 | | { "__fixsfdi", { FSig, NoFPRet } }, |
27 | | { "__fixunsdfsi", { DSig, NoFPRet } }, |
28 | | { "__fixunsdfdi", { DSig, NoFPRet } }, |
29 | | { "__fixdfdi", { DSig, NoFPRet } }, |
30 | | { "__fixunssfsi", { FSig, NoFPRet } }, |
31 | | { "__fixunssfdi", { FSig, NoFPRet } }, |
32 | | { "__floatundisf", { NoSig, FRet } }, |
33 | | { nullptr, { NoSig, NoFPRet } } |
34 | | }; |
35 | | |
36 | | // just do a search for now. there are very few of these special cases. |
37 | | // |
38 | 190 | extern FuncSignature const *findFuncSignature(const char *name) { |
39 | 190 | const char *name_; |
40 | 190 | int i = 0; |
41 | 1.52k | while (PredefinedFuncs[i].Name1.52k ) { |
42 | 1.44k | name_ = PredefinedFuncs[i].Name; |
43 | 1.44k | if (strcmp(name, name_) == 0) |
44 | 102 | return &PredefinedFuncs[i].Signature; |
45 | 1.33k | i++; |
46 | 1.33k | } |
47 | 88 | return nullptr; |
48 | 190 | } |
49 | | } |
50 | | } |