brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 8a02e81 Raw
50 lines · cpp
1//===---- Mips16HardFloatInfo.cpp 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-exception6//7//===----------------------------------------------------------------------===//8//9// This file contains the Mips16 implementation of Mips16HardFloatInfo10// namespace.11//12//===----------------------------------------------------------------------===//13 14#include "Mips16HardFloatInfo.h"15#include <string.h>16 17namespace llvm {18 19namespace Mips16HardFloatInfo {20 21const FuncNameSignature PredefinedFuncs[] = {22  { "__floatdidf", { NoSig, DRet } },23  { "__floatdisf", { NoSig, FRet } },24  { "__floatundidf", { NoSig, DRet } },25  { "__fixsfdi", { FSig, NoFPRet } },26  { "__fixunsdfsi", { DSig, NoFPRet } },27  { "__fixunsdfdi", { DSig, NoFPRet } },28  { "__fixdfdi", { DSig, NoFPRet } },29  { "__fixunssfsi", { FSig, NoFPRet } },30  { "__fixunssfdi", { FSig, NoFPRet } },31  { "__floatundisf", { NoSig, FRet } },32  { nullptr, { NoSig, NoFPRet } }33};34 35// just do a search for now. there are very few of these special cases.36//37extern FuncSignature const *findFuncSignature(const char *name) {38  const char *name_;39  int i = 0;40  while (PredefinedFuncs[i].Name) {41    name_ = PredefinedFuncs[i].Name;42    if (strcmp(name, name_) == 0)43      return &PredefinedFuncs[i].Signature;44    i++;45  }46  return nullptr;47}48}49}50