root/arch/mips/math-emu/sp_2008class.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. ieee754sp_2008class

   1 // SPDX-License-Identifier: GPL-2.0-only
   2 /*
   3  * IEEE754 floating point arithmetic
   4  * single precision: CLASS.f
   5  * FPR[fd] = class(FPR[fs])
   6  *
   7  * MIPS floating point support
   8  * Copyright (C) 2015 Imagination Technologies, Ltd.
   9  * Author: Markos Chandras <markos.chandras@imgtec.com>
  10  */
  11 
  12 #include "ieee754sp.h"
  13 
  14 int ieee754sp_2008class(union ieee754sp x)
  15 {
  16         COMPXSP;
  17 
  18         EXPLODEXSP;
  19 
  20         /*
  21          * 10 bit mask as follows:
  22          *
  23          * bit0 = SNAN
  24          * bit1 = QNAN
  25          * bit2 = -INF
  26          * bit3 = -NORM
  27          * bit4 = -DNORM
  28          * bit5 = -ZERO
  29          * bit6 = INF
  30          * bit7 = NORM
  31          * bit8 = DNORM
  32          * bit9 = ZERO
  33          */
  34 
  35         switch(xc) {
  36         case IEEE754_CLASS_SNAN:
  37                 return 0x01;
  38         case IEEE754_CLASS_QNAN:
  39                 return 0x02;
  40         case IEEE754_CLASS_INF:
  41                 return 0x04 << (xs ? 0 : 4);
  42         case IEEE754_CLASS_NORM:
  43                 return 0x08 << (xs ? 0 : 4);
  44         case IEEE754_CLASS_DNORM:
  45                 return 0x10 << (xs ? 0 : 4);
  46         case IEEE754_CLASS_ZERO:
  47                 return 0x20 << (xs ? 0 : 4);
  48         default:
  49                 pr_err("Unknown class: %d\n", xc);
  50                 return 0;
  51         }
  52 }

/* [<][>][^][v][top][bottom][index][help] */