Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cae55066 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

MIPS: math-emu: Mark exception handling functions as __cold.



Optimizes the code flow and shaves of half a percent of the math-emu
code size.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent f80cc08d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
 * ########################################################################
 */

#include <linux/compiler.h>

#include "ieee754int.h"
#include "ieee754sp.h"
@@ -96,7 +97,7 @@ const struct ieee754sp_konst __ieee754sp_spcvals[] = {
};


int ieee754si_xcpt(int r, const char *op, ...)
int __cold ieee754si_xcpt(int r, const char *op, ...)
{
	struct ieee754xctx ax;

@@ -111,7 +112,7 @@ int ieee754si_xcpt(int r, const char *op, ...)
	return ax.rv.si;
}

s64 ieee754di_xcpt(s64 r, const char *op, ...)
s64 __cold ieee754di_xcpt(s64 r, const char *op, ...)
{
	struct ieee754xctx ax;

+2 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#ifndef __ARCH_MIPS_MATH_EMU_IEEE754_H
#define __ARCH_MIPS_MATH_EMU_IEEE754_H

#include <linux/compiler.h>
#include <asm/byteorder.h>
#include <linux/types.h>
#include <linux/sched.h>
@@ -421,7 +422,7 @@ struct ieee754xctx {
#define IEEE754_RT_SI	3
#define IEEE754_RT_DI	4

extern void ieee754_xcpt(struct ieee754xctx *xcp);
extern void __cold ieee754_xcpt(struct ieee754xctx *xcp);

/* compat */
#define ieee754dp_fix(x)	ieee754dp_tint(x)
+3 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
 * ########################################################################
 */

#include <linux/compiler.h>

#include "ieee754dp.h"

@@ -45,7 +46,7 @@ int ieee754dp_issnan(ieee754dp x)
}


ieee754dp ieee754dp_xcpt(ieee754dp r, const char *op, ...)
ieee754dp __cold ieee754dp_xcpt(ieee754dp r, const char *op, ...)
{
	struct ieee754xctx ax;
	if (!TSTX())
@@ -60,7 +61,7 @@ ieee754dp ieee754dp_xcpt(ieee754dp r, const char *op, ...)
	return ax.rv.dp;
}

ieee754dp ieee754dp_nanxcpt(ieee754dp r, const char *op, ...)
ieee754dp __cold ieee754dp_nanxcpt(ieee754dp r, const char *op, ...)
{
	struct ieee754xctx ax;

+5 −4
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
 * ########################################################################
 */

#include <linux/compiler.h>

#include "ieee754int.h"

@@ -62,10 +63,10 @@ static inline ieee754dp builddp(int s, int bx, u64 m)

extern int ieee754dp_isnan(ieee754dp);
extern int ieee754dp_issnan(ieee754dp);
extern int ieee754si_xcpt(int, const char *, ...);
extern s64 ieee754di_xcpt(s64, const char *, ...);
extern ieee754dp ieee754dp_xcpt(ieee754dp, const char *, ...);
extern ieee754dp ieee754dp_nanxcpt(ieee754dp, const char *, ...);
extern int __cold ieee754si_xcpt(int, const char *, ...);
extern s64 __cold ieee754di_xcpt(s64, const char *, ...);
extern ieee754dp __cold ieee754dp_xcpt(ieee754dp, const char *, ...);
extern ieee754dp __cold ieee754dp_nanxcpt(ieee754dp, const char *, ...);
extern ieee754dp ieee754dp_bestnan(ieee754dp, ieee754dp);
extern ieee754dp ieee754dp_format(int, int, u64);

+3 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
 * ########################################################################
 */

#include <linux/compiler.h>

#include "ieee754sp.h"

@@ -45,7 +46,7 @@ int ieee754sp_issnan(ieee754sp x)
}


ieee754sp ieee754sp_xcpt(ieee754sp r, const char *op, ...)
ieee754sp __cold ieee754sp_xcpt(ieee754sp r, const char *op, ...)
{
	struct ieee754xctx ax;

@@ -61,7 +62,7 @@ ieee754sp ieee754sp_xcpt(ieee754sp r, const char *op, ...)
	return ax.rv.sp;
}

ieee754sp ieee754sp_nanxcpt(ieee754sp r, const char *op, ...)
ieee754sp __cold ieee754sp_nanxcpt(ieee754sp r, const char *op, ...)
{
	struct ieee754xctx ax;

Loading