// SPDX-License-Identifier: GPL-2.0-only1/*2* IEEE754 floating point arithmetic3* single precision: CLASS.f4* FPR[fd] = class(FPR[fs])5*6* MIPS floating point support7* Copyright (C) 2015 Imagination Technologies, Ltd.8* Author: Markos Chandras <[email protected]>9*/1011#include "ieee754sp.h"1213int ieee754sp_2008class(union ieee754sp x)14{15COMPXSP;1617EXPLODEXSP;1819/*20* 10 bit mask as follows:21*22* bit0 = SNAN23* bit1 = QNAN24* bit2 = -INF25* bit3 = -NORM26* bit4 = -DNORM27* bit5 = -ZERO28* bit6 = INF29* bit7 = NORM30* bit8 = DNORM31* bit9 = ZERO32*/3334switch(xc) {35case IEEE754_CLASS_SNAN:36return 0x01;37case IEEE754_CLASS_QNAN:38return 0x02;39case IEEE754_CLASS_INF:40return 0x04 << (xs ? 0 : 4);41case IEEE754_CLASS_NORM:42return 0x08 << (xs ? 0 : 4);43case IEEE754_CLASS_DNORM:44return 0x10 << (xs ? 0 : 4);45case IEEE754_CLASS_ZERO:46return 0x20 << (xs ? 0 : 4);47default:48pr_err("Unknown class: %d\n", xc);49return 0;50}51}525354