Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 123060
b: refs/heads/master
c: 033b8a3
h: refs/heads/master
v: v3
  • Loading branch information
Liu Yu authored and Kumar Gala committed Dec 3, 2008
1 parent cbc9ba7 commit 9786282
Show file tree
Hide file tree
Showing 19 changed files with 35 additions and 53 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 463a8c01e153c06480b862d83d6a71bf5666a577
refs/heads/master: 033b8a333c66e0a7dc63132c1bd65175dc98bc25
1 change: 0 additions & 1 deletion trunk/arch/powerpc/math-emu/fadd.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ fadd(void *frD, void *frA, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p\n", __func__, frD, frA, frB);
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fcmpo.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ fcmpo(u32 *ccr, int crfD, void *frA, void *frB)
FP_DECL_EX;
int code[4] = { (1 << 3), (1 << 1), (1 << 2), (1 << 0) };
long cmp;
int ret = 0;

#ifdef DEBUG
printk("%s: %p (%08x) %d %p %p\n", __func__, ccr, *ccr, crfD, frA, frB);
Expand All @@ -29,7 +28,7 @@ fcmpo(u32 *ccr, int crfD, void *frA, void *frB)
#endif

if (A_c == FP_CLS_NAN || B_c == FP_CLS_NAN)
ret |= EFLAG_VXVC;
FP_SET_EXCEPTION(EFLAG_VXVC);

FP_CMP_D(cmp, A, B, 2);
cmp = code[(cmp + 1) & 3];
Expand All @@ -44,5 +43,5 @@ fcmpo(u32 *ccr, int crfD, void *frA, void *frB)
printk("CR: %08x\n", *ccr);
#endif

return ret;
return FP_CUR_EXCEPTIONS;
}
9 changes: 4 additions & 5 deletions trunk/arch/powerpc/math-emu/fdiv.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ fdiv(void *frD, void *frA, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p\n", __func__, frD, frA, frB);
Expand All @@ -28,22 +27,22 @@ fdiv(void *frD, void *frA, void *frB)
#endif

if (A_c == FP_CLS_ZERO && B_c == FP_CLS_ZERO) {
ret |= EFLAG_VXZDZ;
FP_SET_EXCEPTION(EFLAG_VXZDZ);
#ifdef DEBUG
printk("%s: FPSCR_VXZDZ raised\n", __func__);
#endif
}
if (A_c == FP_CLS_INF && B_c == FP_CLS_INF) {
ret |= EFLAG_VXIDI;
FP_SET_EXCEPTION(EFLAG_VXIDI);
#ifdef DEBUG
printk("%s: FPSCR_VXIDI raised\n", __func__);
#endif
}

if (B_c == FP_CLS_ZERO && A_c != FP_CLS_ZERO) {
ret |= EFLAG_DIVZERO;
FP_SET_EXCEPTION(EFLAG_DIVZERO);
if (__FPU_TRAP_P(EFLAG_DIVZERO))
return ret;
return FP_CUR_EXCEPTIONS;
}
FP_DIV_D(R, A, B);

Expand Down
9 changes: 4 additions & 5 deletions trunk/arch/powerpc/math-emu/fdivs.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ fdivs(void *frD, void *frA, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p\n", __func__, frD, frA, frB);
Expand All @@ -29,22 +28,22 @@ fdivs(void *frD, void *frA, void *frB)
#endif

if (A_c == FP_CLS_ZERO && B_c == FP_CLS_ZERO) {
ret |= EFLAG_VXZDZ;
FP_SET_EXCEPTION(EFLAG_VXZDZ);
#ifdef DEBUG
printk("%s: FPSCR_VXZDZ raised\n", __func__);
#endif
}
if (A_c == FP_CLS_INF && B_c == FP_CLS_INF) {
ret |= EFLAG_VXIDI;
FP_SET_EXCEPTION(EFLAG_VXIDI);
#ifdef DEBUG
printk("%s: FPSCR_VXIDI raised\n", __func__);
#endif
}

if (B_c == FP_CLS_ZERO && A_c != FP_CLS_ZERO) {
ret |= EFLAG_DIVZERO;
FP_SET_EXCEPTION(EFLAG_DIVZERO);
if (__FPU_TRAP_P(EFLAG_DIVZERO))
return ret;
return FP_CUR_EXCEPTIONS;
}

FP_DIV_D(R, A, B);
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fmadd.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ fmadd(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -33,12 +32,12 @@ fmadd(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fmadds.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ fmadds(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -34,12 +33,12 @@ fmadds(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fmsub.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ fmsub(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -33,15 +32,15 @@ fmsub(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (B_c != FP_CLS_NAN)
B_s ^= 1;

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fmsubs.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ fmsubs(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -34,15 +33,15 @@ fmsubs(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (B_c != FP_CLS_NAN)
B_s ^= 1;

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/math-emu/fmul.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ fmul(void *frD, void *frA, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p\n", __func__, frD, frA, frB);
Expand All @@ -31,7 +30,7 @@ fmul(void *frD, void *frA, void *frB)

if ((A_c == FP_CLS_INF && B_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && B_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(R, A, B);

Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/math-emu/fmuls.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ fmuls(void *frD, void *frA, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p\n", __func__, frD, frA, frB);
Expand All @@ -32,7 +31,7 @@ fmuls(void *frD, void *frA, void *frB)

if ((A_c == FP_CLS_INF && B_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && B_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(R, A, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fnmadd.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ fnmadd(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -33,12 +32,12 @@ fnmadd(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fnmadds.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ fnmadds(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -34,12 +33,12 @@ fnmadds(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fnmsub.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ fnmsub(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -33,15 +32,15 @@ fnmsub(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (B_c != FP_CLS_NAN)
B_s ^= 1;

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fnmsubs.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ fnmsubs(void *frD, void *frA, void *frB, void *frC)
FP_DECL_D(C);
FP_DECL_D(T);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frA, frB, frC);
Expand All @@ -34,15 +33,15 @@ fnmsubs(void *frD, void *frA, void *frB, void *frC)

if ((A_c == FP_CLS_INF && C_c == FP_CLS_ZERO) ||
(A_c == FP_CLS_ZERO && C_c == FP_CLS_INF))
ret |= EFLAG_VXIMZ;
FP_SET_EXCEPTION(EFLAG_VXIMZ);

FP_MUL_D(T, A, C);

if (B_c != FP_CLS_NAN)
B_s ^= 1;

if (T_s != B_s && T_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, T, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fsqrt.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ fsqrt(void *frD, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frB);
Expand All @@ -25,9 +24,9 @@ fsqrt(void *frD, void *frB)
#endif

if (B_s && B_c != FP_CLS_ZERO)
ret |= EFLAG_VXSQRT;
FP_SET_EXCEPTION(EFLAG_VXSQRT);
if (B_c == FP_CLS_NAN)
ret |= EFLAG_VXSNAN;
FP_SET_EXCEPTION(EFLAG_VXSNAN);

FP_SQRT_D(R, B);

Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/powerpc/math-emu/fsqrts.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ fsqrts(void *frD, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p %p\n", __func__, frD, frB);
Expand All @@ -26,9 +25,9 @@ fsqrts(void *frD, void *frB)
#endif

if (B_s && B_c != FP_CLS_ZERO)
ret |= EFLAG_VXSQRT;
FP_SET_EXCEPTION(EFLAG_VXSQRT);
if (B_c == FP_CLS_NAN)
ret |= EFLAG_VXSNAN;
FP_SET_EXCEPTION(EFLAG_VXSNAN);

FP_SQRT_D(R, B);

Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/powerpc/math-emu/fsub.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ fsub(void *frD, void *frA, void *frB)
FP_DECL_D(B);
FP_DECL_D(R);
FP_DECL_EX;
int ret = 0;

#ifdef DEBUG
printk("%s: %p %p %p\n", __func__, frD, frA, frB);
Expand All @@ -31,7 +30,7 @@ fsub(void *frD, void *frA, void *frB)
B_s ^= 1;

if (A_s != B_s && A_c == FP_CLS_INF && B_c == FP_CLS_INF)
ret |= EFLAG_VXISI;
FP_SET_EXCEPTION(EFLAG_VXISI);

FP_ADD_D(R, A, B);

Expand Down
Loading

0 comments on commit 9786282

Please sign in to comment.