| //===---- Mips16HardFloatInfo.cpp for Mips16 Hard Float              -----===// | 
 | // | 
 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
 | // See https://llvm.org/LICENSE.txt for license information. | 
 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 | // | 
 | // This file contains the Mips16 implementation of Mips16HardFloatInfo | 
 | // namespace. | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #include "Mips16HardFloatInfo.h" | 
 | #include <string.h> | 
 |  | 
 | namespace llvm { | 
 |  | 
 | namespace Mips16HardFloatInfo { | 
 |  | 
 | const FuncNameSignature PredefinedFuncs[] = { | 
 |   { "__floatdidf", { NoSig, DRet } }, | 
 |   { "__floatdisf", { NoSig, FRet } }, | 
 |   { "__floatundidf", { NoSig, DRet } }, | 
 |   { "__fixsfdi", { FSig, NoFPRet } }, | 
 |   { "__fixunsdfsi", { DSig, NoFPRet } }, | 
 |   { "__fixunsdfdi", { DSig, NoFPRet } }, | 
 |   { "__fixdfdi", { DSig, NoFPRet } }, | 
 |   { "__fixunssfsi", { FSig, NoFPRet } }, | 
 |   { "__fixunssfdi", { FSig, NoFPRet } }, | 
 |   { "__floatundisf", { NoSig, FRet } }, | 
 |   { nullptr, { NoSig, NoFPRet } } | 
 | }; | 
 |  | 
 | // just do a search for now. there are very few of these special cases. | 
 | // | 
 | extern FuncSignature const *findFuncSignature(const char *name) { | 
 |   const char *name_; | 
 |   int i = 0; | 
 |   while (PredefinedFuncs[i].Name) { | 
 |     name_ = PredefinedFuncs[i].Name; | 
 |     if (strcmp(name, name_) == 0) | 
 |       return &PredefinedFuncs[i].Signature; | 
 |     i++; | 
 |   } | 
 |   return nullptr; | 
 | } | 
 | } | 
 | } |