Commit 47fa0c02 authored by Ralf Baechle's avatar Ralf Baechle

MIPS: math-emu: Reformat code according to coding style.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 85c51c51
...@@ -869,14 +869,16 @@ static inline int cop1_64bit(struct pt_regs *xcp) ...@@ -869,14 +869,16 @@ static inline int cop1_64bit(struct pt_regs *xcp)
#endif #endif
} }
#define SIFROMREG(si, x) do { \ #define SIFROMREG(si, x) \
do { \
if (cop1_64bit(xcp)) \ if (cop1_64bit(xcp)) \
(si) = get_fpr32(&ctx->fpr[x], 0); \ (si) = get_fpr32(&ctx->fpr[x], 0); \
else \ else \
(si) = get_fpr32(&ctx->fpr[(x) & ~1], (x) & 1); \ (si) = get_fpr32(&ctx->fpr[(x) & ~1], (x) & 1); \
} while (0) } while (0)
#define SITOREG(si, x) do { \ #define SITOREG(si, x) \
do { \
if (cop1_64bit(xcp)) { \ if (cop1_64bit(xcp)) { \
unsigned i; \ unsigned i; \
set_fpr32(&ctx->fpr[x], 0, si); \ set_fpr32(&ctx->fpr[x], 0, si); \
...@@ -889,17 +891,19 @@ static inline int cop1_64bit(struct pt_regs *xcp) ...@@ -889,17 +891,19 @@ static inline int cop1_64bit(struct pt_regs *xcp)
#define SIFROMHREG(si, x) ((si) = get_fpr32(&ctx->fpr[x], 1)) #define SIFROMHREG(si, x) ((si) = get_fpr32(&ctx->fpr[x], 1))
#define SITOHREG(si, x) do { \ #define SITOHREG(si, x) \
do { \
unsigned i; \ unsigned i; \
set_fpr32(&ctx->fpr[x], 1, si); \ set_fpr32(&ctx->fpr[x], 1, si); \
for (i = 2; i < ARRAY_SIZE(ctx->fpr[x].val32); i++) \ for (i = 2; i < ARRAY_SIZE(ctx->fpr[x].val32); i++) \
set_fpr32(&ctx->fpr[x], i, 0); \ set_fpr32(&ctx->fpr[x], i, 0); \
} while (0) } while (0)
#define DIFROMREG(di, x) \ #define DIFROMREG(di, x) \
((di) = get_fpr64(&ctx->fpr[(x) & ~(cop1_64bit(xcp) == 0)], 0)) ((di) = get_fpr64(&ctx->fpr[(x) & ~(cop1_64bit(xcp) == 0)], 0))
#define DITOREG(di, x) do { \ #define DITOREG(di, x) \
do { \
unsigned fpr, i; \ unsigned fpr, i; \
fpr = (x) & ~(cop1_64bit(xcp) == 0); \ fpr = (x) & ~(cop1_64bit(xcp) == 0); \
set_fpr64(&ctx->fpr[fpr], 0, di); \ set_fpr64(&ctx->fpr[fpr], 0, di); \
...@@ -1341,20 +1345,20 @@ static const unsigned char cmptab[8] = { ...@@ -1341,20 +1345,20 @@ static const unsigned char cmptab[8] = {
* Additional MIPS4 instructions * Additional MIPS4 instructions
*/ */
#define DEF3OP(name, p, f1, f2, f3) \ #define DEF3OP(name, p, f1, f2, f3) \
static union ieee754##p fpemu_##p##_##name(union ieee754##p r, union ieee754##p s, \ static union ieee754##p fpemu_##p##_##name(union ieee754##p r, \
union ieee754##p t) \ union ieee754##p s, union ieee754##p t) \
{ \ { \
struct _ieee754_csr ieee754_csr_save; \ struct _ieee754_csr ieee754_csr_save; \
s = f1(s, t); \ s = f1(s, t); \
ieee754_csr_save = ieee754_csr; \ ieee754_csr_save = ieee754_csr; \
s = f2(s, r); \ s = f2(s, r); \
ieee754_csr_save.cx |= ieee754_csr.cx; \ ieee754_csr_save.cx |= ieee754_csr.cx; \
ieee754_csr_save.sx |= ieee754_csr.sx; \ ieee754_csr_save.sx |= ieee754_csr.sx; \
s = f3(s); \ s = f3(s); \
ieee754_csr.cx |= ieee754_csr_save.cx; \ ieee754_csr.cx |= ieee754_csr_save.cx; \
ieee754_csr.sx |= ieee754_csr_save.sx; \ ieee754_csr.sx |= ieee754_csr_save.sx; \
return s; \ return s; \
} }
static union ieee754dp fpemu_dp_recip(union ieee754dp d) static union ieee754dp fpemu_dp_recip(union ieee754dp d)
......
...@@ -151,12 +151,12 @@ union ieee754dp ieee754dp_format(int sn, int xe, u64 xm) ...@@ -151,12 +151,12 @@ union ieee754dp ieee754dp_format(int sn, int xe, u64 xm)
case IEEE754_RZ: case IEEE754_RZ:
return ieee754dp_zero(sn); return ieee754dp_zero(sn);
case IEEE754_RU: /* toward +Infinity */ case IEEE754_RU: /* toward +Infinity */
if(sn == 0) if (sn == 0)
return ieee754dp_min(0); return ieee754dp_min(0);
else else
return ieee754dp_zero(1); return ieee754dp_zero(1);
case IEEE754_RD: /* toward -Infinity */ case IEEE754_RD: /* toward -Infinity */
if(sn == 0) if (sn == 0)
return ieee754dp_zero(0); return ieee754dp_zero(0);
else else
return ieee754dp_min(1); return ieee754dp_min(1);
......
...@@ -32,17 +32,17 @@ ...@@ -32,17 +32,17 @@
/* 3bit extended double precision sticky right shift */ /* 3bit extended double precision sticky right shift */
#define XDPSRS(v,rs) \ #define XDPSRS(v,rs) \
((rs > (DP_MBITS+3))?1:((v) >> (rs)) | ((v) << (64-(rs)) != 0)) ((rs > (DP_MBITS+3))?1:((v) >> (rs)) | ((v) << (64-(rs)) != 0))
#define XDPSRSX1() \ #define XDPSRSX1() \
(xe++, (xm = (xm >> 1) | (xm & 1))) (xe++, (xm = (xm >> 1) | (xm & 1)))
#define XDPSRS1(v) \ #define XDPSRS1(v) \
(((v) >> 1) | ((v) & 1)) (((v) >> 1) | ((v) & 1))
/* convert denormal to normalized with extended exponent */ /* convert denormal to normalized with extended exponent */
#define DPDNORMx(m,e) \ #define DPDNORMx(m,e) \
while( (m >> DP_MBITS) == 0) { m <<= 1; e--; } while ((m >> DP_MBITS) == 0) { m <<= 1; e--; }
#define DPDNORMX DPDNORMx(xm, xe) #define DPDNORMX DPDNORMx(xm, xe)
#define DPDNORMY DPDNORMx(ym, ye) #define DPDNORMY DPDNORMx(ym, ye)
...@@ -71,13 +71,13 @@ extern union ieee754dp ieee754dp_bestnan(union ieee754dp, union ieee754dp); ...@@ -71,13 +71,13 @@ extern union ieee754dp ieee754dp_bestnan(union ieee754dp, union ieee754dp);
extern union ieee754dp ieee754dp_format(int, int, u64); extern union ieee754dp ieee754dp_format(int, int, u64);
#define DPNORMRET2(s, e, m, name, a0, a1) \ #define DPNORMRET2(s, e, m, name, a0, a1) \
{ \ { \
union ieee754dp V = ieee754dp_format(s, e, m); \ union ieee754dp V = ieee754dp_format(s, e, m); \
if(TSTX()) \ if (TSTX()) \
return ieee754dp_xcpt(V, name, a0, a1); \ return ieee754dp_xcpt(V, name, a0, a1); \
else \ else \
return V; \ return V; \
} }
#define DPNORMRET1(s, e, m, name, a0) DPNORMRET2(s, e, m, name, a0, a0) #define DPNORMRET1(s, e, m, name, a0) DPNORMRET2(s, e, m, name, a0, a0)
...@@ -57,105 +57,105 @@ ...@@ -57,105 +57,105 @@
#define CLPAIR(x, y) ((x)*6+(y)) #define CLPAIR(x, y) ((x)*6+(y))
#define CLEARCX \ #define CLEARCX \
(ieee754_csr.cx = 0) (ieee754_csr.cx = 0)
#define SETCX(x) \ #define SETCX(x) \
(ieee754_csr.cx |= (x), ieee754_csr.sx |= (x)) (ieee754_csr.cx |= (x), ieee754_csr.sx |= (x))
#define SETANDTESTCX(x) \ #define SETANDTESTCX(x) \
(SETCX(x), ieee754_csr.mx & (x)) (SETCX(x), ieee754_csr.mx & (x))
#define TSTX() \ #define TSTX() \
(ieee754_csr.cx & ieee754_csr.mx) (ieee754_csr.cx & ieee754_csr.mx)
#define COMPXSP \ #define COMPXSP \
unsigned xm; int xe; int xs __maybe_unused; int xc unsigned xm; int xe; int xs __maybe_unused; int xc
#define COMPYSP \ #define COMPYSP \
unsigned ym; int ye; int ys; int yc unsigned ym; int ye; int ys; int yc
#define EXPLODESP(v, vc, vs, ve, vm) \ #define EXPLODESP(v, vc, vs, ve, vm) \
{\ { \
vs = SPSIGN(v);\ vs = SPSIGN(v); \
ve = SPBEXP(v);\ ve = SPBEXP(v); \
vm = SPMANT(v);\ vm = SPMANT(v); \
if(ve == SP_EMAX+1+SP_EBIAS){\ if (ve == SP_EMAX+1+SP_EBIAS) { \
if(vm == 0)\ if (vm == 0) \
vc = IEEE754_CLASS_INF;\ vc = IEEE754_CLASS_INF; \
else if(vm & SP_MBIT(SP_MBITS-1)) \ else if (vm & SP_MBIT(SP_MBITS-1)) \
vc = IEEE754_CLASS_SNAN;\ vc = IEEE754_CLASS_SNAN; \
else \ else \
vc = IEEE754_CLASS_QNAN;\ vc = IEEE754_CLASS_QNAN; \
} else if(ve == SP_EMIN-1+SP_EBIAS) {\ } else if (ve == SP_EMIN-1+SP_EBIAS) { \
if(vm) {\ if (vm) { \
ve = SP_EMIN;\ ve = SP_EMIN; \
vc = IEEE754_CLASS_DNORM;\ vc = IEEE754_CLASS_DNORM; \
} else\ } else \
vc = IEEE754_CLASS_ZERO;\ vc = IEEE754_CLASS_ZERO; \
} else {\ } else { \
ve -= SP_EBIAS;\ ve -= SP_EBIAS; \
vm |= SP_HIDDEN_BIT;\ vm |= SP_HIDDEN_BIT; \
vc = IEEE754_CLASS_NORM;\ vc = IEEE754_CLASS_NORM; \
}\ } \
} }
#define EXPLODEXSP EXPLODESP(x, xc, xs, xe, xm) #define EXPLODEXSP EXPLODESP(x, xc, xs, xe, xm)
#define EXPLODEYSP EXPLODESP(y, yc, ys, ye, ym) #define EXPLODEYSP EXPLODESP(y, yc, ys, ye, ym)
#define COMPXDP \ #define COMPXDP \
u64 xm; int xe; int xs __maybe_unused; int xc u64 xm; int xe; int xs __maybe_unused; int xc
#define COMPYDP \ #define COMPYDP \
u64 ym; int ye; int ys; int yc u64 ym; int ye; int ys; int yc
#define EXPLODEDP(v, vc, vs, ve, vm) \ #define EXPLODEDP(v, vc, vs, ve, vm) \
{\ { \
vm = DPMANT(v);\ vm = DPMANT(v); \
vs = DPSIGN(v);\ vs = DPSIGN(v); \
ve = DPBEXP(v);\ ve = DPBEXP(v); \
if(ve == DP_EMAX+1+DP_EBIAS){\ if (ve == DP_EMAX+1+DP_EBIAS) { \
if(vm == 0)\ if (vm == 0) \
vc = IEEE754_CLASS_INF;\ vc = IEEE754_CLASS_INF; \
else if(vm & DP_MBIT(DP_MBITS-1)) \ else if (vm & DP_MBIT(DP_MBITS-1)) \
vc = IEEE754_CLASS_SNAN;\ vc = IEEE754_CLASS_SNAN; \
else \ else \
vc = IEEE754_CLASS_QNAN;\ vc = IEEE754_CLASS_QNAN; \
} else if(ve == DP_EMIN-1+DP_EBIAS) {\ } else if (ve == DP_EMIN-1+DP_EBIAS) { \
if(vm) {\ if (vm) { \
ve = DP_EMIN;\ ve = DP_EMIN; \
vc = IEEE754_CLASS_DNORM;\ vc = IEEE754_CLASS_DNORM; \
} else\ } else \
vc = IEEE754_CLASS_ZERO;\ vc = IEEE754_CLASS_ZERO; \
} else {\ } else { \
ve -= DP_EBIAS;\ ve -= DP_EBIAS; \
vm |= DP_HIDDEN_BIT;\ vm |= DP_HIDDEN_BIT; \
vc = IEEE754_CLASS_NORM;\ vc = IEEE754_CLASS_NORM; \
}\ } \
} }
#define EXPLODEXDP EXPLODEDP(x, xc, xs, xe, xm) #define EXPLODEXDP EXPLODEDP(x, xc, xs, xe, xm)
#define EXPLODEYDP EXPLODEDP(y, yc, ys, ye, ym) #define EXPLODEYDP EXPLODEDP(y, yc, ys, ye, ym)
#define FLUSHDP(v, vc, vs, ve, vm) \ #define FLUSHDP(v, vc, vs, ve, vm) \
if(vc==IEEE754_CLASS_DNORM) {\ if (vc==IEEE754_CLASS_DNORM) { \
if(ieee754_csr.nod) {\ if (ieee754_csr.nod) { \
SETCX(IEEE754_INEXACT);\ SETCX(IEEE754_INEXACT); \
vc = IEEE754_CLASS_ZERO;\ vc = IEEE754_CLASS_ZERO; \
ve = DP_EMIN-1+DP_EBIAS;\ ve = DP_EMIN-1+DP_EBIAS; \
vm = 0;\ vm = 0; \
v = ieee754dp_zero(vs);\ v = ieee754dp_zero(vs); \
}\ } \
} }
#define FLUSHSP(v, vc, vs, ve, vm) \ #define FLUSHSP(v, vc, vs, ve, vm) \
if(vc==IEEE754_CLASS_DNORM) {\ if (vc==IEEE754_CLASS_DNORM) { \
if(ieee754_csr.nod) {\ if (ieee754_csr.nod) { \
SETCX(IEEE754_INEXACT);\ SETCX(IEEE754_INEXACT); \
vc = IEEE754_CLASS_ZERO;\ vc = IEEE754_CLASS_ZERO; \
ve = SP_EMIN-1+SP_EBIAS;\ ve = SP_EMIN-1+SP_EBIAS; \
vm = 0;\ vm = 0; \
v = ieee754sp_zero(vs);\ v = ieee754sp_zero(vs); \
}\ } \
} }
#define FLUSHXDP FLUSHDP(x, xc, xs, xe, xm) #define FLUSHXDP FLUSHDP(x, xc, xs, xe, xm)
......
...@@ -152,12 +152,12 @@ union ieee754sp ieee754sp_format(int sn, int xe, unsigned xm) ...@@ -152,12 +152,12 @@ union ieee754sp ieee754sp_format(int sn, int xe, unsigned xm)
case IEEE754_RZ: case IEEE754_RZ:
return ieee754sp_zero(sn); return ieee754sp_zero(sn);
case IEEE754_RU: /* toward +Infinity */ case IEEE754_RU: /* toward +Infinity */
if(sn == 0) if (sn == 0)
return ieee754sp_min(0); return ieee754sp_min(0);
else else
return ieee754sp_zero(1); return ieee754sp_zero(1);
case IEEE754_RD: /* toward -Infinity */ case IEEE754_RD: /* toward -Infinity */
if(sn == 0) if (sn == 0)
return ieee754sp_zero(0); return ieee754sp_zero(0);
else else
return ieee754sp_min(1); return ieee754sp_min(1);
...@@ -174,8 +174,7 @@ union ieee754sp ieee754sp_format(int sn, int xe, unsigned xm) ...@@ -174,8 +174,7 @@ union ieee754sp ieee754sp_format(int sn, int xe, unsigned xm)
/* Clear grs bits */ /* Clear grs bits */
xm &= ~(SP_MBIT(3) - 1); xm &= ~(SP_MBIT(3) - 1);
xe++; xe++;
} } else {
else {
/* sticky right shift es bits /* sticky right shift es bits
*/ */
SPXSRSXn(es); SPXSRSXn(es);
......
...@@ -31,23 +31,23 @@ ...@@ -31,23 +31,23 @@
#define assert(expr) ((void)0) #define assert(expr) ((void)0)
/* 3bit extended single precision sticky right shift */ /* 3bit extended single precision sticky right shift */
#define SPXSRSXn(rs) \ #define SPXSRSXn(rs) \
(xe += rs, \ (xe += rs, \
xm = (rs > (SP_MBITS+3))?1:((xm) >> (rs)) | ((xm) << (32-(rs)) != 0)) xm = (rs > (SP_MBITS+3))?1:((xm) >> (rs)) | ((xm) << (32-(rs)) != 0))
#define SPXSRSX1() \ #define SPXSRSX1() \
(xe++, (xm = (xm >> 1) | (xm & 1))) (xe++, (xm = (xm >> 1) | (xm & 1)))
#define SPXSRSYn(rs) \ #define SPXSRSYn(rs) \
(ye+=rs, \ (ye+=rs, \
ym = (rs > (SP_MBITS+3))?1:((ym) >> (rs)) | ((ym) << (32-(rs)) != 0)) ym = (rs > (SP_MBITS+3))?1:((ym) >> (rs)) | ((ym) << (32-(rs)) != 0))
#define SPXSRSY1() \ #define SPXSRSY1() \
(ye++, (ym = (ym >> 1) | (ym & 1))) (ye++, (ym = (ym >> 1) | (ym & 1)))
/* convert denormal to normalized with extended exponent */ /* convert denormal to normalized with extended exponent */
#define SPDNORMx(m,e) \ #define SPDNORMx(m,e) \
while( (m >> SP_MBITS) == 0) { m <<= 1; e--; } while ((m >> SP_MBITS) == 0) { m <<= 1; e--; }
#define SPDNORMX SPDNORMx(xm, xe) #define SPDNORMX SPDNORMx(xm, xe)
#define SPDNORMY SPDNORMx(ym, ye) #define SPDNORMY SPDNORMx(ym, ye)
...@@ -77,13 +77,14 @@ extern union ieee754sp ieee754sp_bestnan(union ieee754sp, union ieee754sp); ...@@ -77,13 +77,14 @@ extern union ieee754sp ieee754sp_bestnan(union ieee754sp, union ieee754sp);
extern union ieee754sp ieee754sp_format(int, int, unsigned); extern union ieee754sp ieee754sp_format(int, int, unsigned);
#define SPNORMRET2(s, e, m, name, a0, a1) \ #define SPNORMRET2(s, e, m, name, a0, a1) \
{ \ { \
union ieee754sp V = ieee754sp_format(s, e, m); \ union ieee754sp V = ieee754sp_format(s, e, m); \
if(TSTX()) \ \
return ieee754sp_xcpt(V, name, a0, a1); \ if (TSTX()) \
else \ return ieee754sp_xcpt(V, name, a0, a1); \
return V; \ else \
return V; \
} }
#define SPNORMRET1(s, e, m, name, a0) SPNORMRET2(s, e, m, name, a0, a0) #define SPNORMRET1(s, e, m, name, a0) SPNORMRET2(s, e, m, name, a0, a0)
...@@ -38,14 +38,17 @@ static int __init debugfs_fpuemu(void) ...@@ -38,14 +38,17 @@ static int __init debugfs_fpuemu(void)
if (!dir) if (!dir)
return -ENOMEM; return -ENOMEM;
#define FPU_STAT_CREATE(M) \ #define FPU_EMU_STAT_OFFSET(m) \
do { \ offsetof(struct mips_fpu_emulator_stats, m)
d = debugfs_create_file(#M , S_IRUGO, dir, \
(void *)offsetof(struct mips_fpu_emulator_stats, M), \ #define FPU_STAT_CREATE(m) \
&fops_fpuemu_stat); \ do { \
if (!d) \ d = debugfs_create_file(#m , S_IRUGO, dir, \
return -ENOMEM; \ (void *)FPU_EMU_STAT_OFFSET(m), \
} while (0) &fops_fpuemu_stat); \
if (!d) \
return -ENOMEM; \
} while (0)
FPU_STAT_CREATE(emulated); FPU_STAT_CREATE(emulated);
FPU_STAT_CREATE(loads); FPU_STAT_CREATE(loads);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment