2008-08-21 12:50:40

by Kumar Gala

[permalink] [raw]
Subject: [PATCH] math-emu: Fix compiler warnings

Fix warnings of the form:
arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f1' may be used uninitialized in this function
arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f0' may be used uninitialized in this function

Signed-off-by: Kumar Gala <[email protected]>
---

I intend these patches to go via the powerpc.git tree if no one has issues.

- k

include/math-emu/op-2.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/math-emu/op-2.h b/include/math-emu/op-2.h
index e193fb0..4f26ecc 100644
--- a/include/math-emu/op-2.h
+++ b/include/math-emu/op-2.h
@@ -25,7 +25,7 @@
#ifndef __MATH_EMU_OP_2_H__
#define __MATH_EMU_OP_2_H__

-#define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0, X##_f1
+#define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0 = 0, X##_f1 = 0
#define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
#define _FP_FRAC_SET_2(X,I) __FP_FRAC_SET_2(X, I)
#define _FP_FRAC_HIGH_2(X) (X##_f1)
--
1.5.5.1


2008-08-21 12:50:54

by Kumar Gala

[permalink] [raw]
Subject: [PATCH] math-emu: Add support for reporting exact invalid exception

Some architectures (like powerpc) provide status information on the exact
type of invalid exception. This is pretty straight forward as we already
report invalid exceptions via FP_SET_EXCEPTION.

We add new flags (FP_EX_INVALID_*) the architecture code can define if it
wants the exact invalid exception reported.

We had to split out the INF/INF and 0/0 cases for divide to allow reporting
the two invalid forms properly.

Signed-off-by: Kumar Gala <[email protected]>
---
I intend these patches to go via the powerpc.git tree if no one has issues.

- k

include/math-emu/op-common.h | 12 ++++++++----
include/math-emu/soft-fp.h | 19 +++++++++++++++++++
2 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h
index bb46e76..cc1ec39 100644
--- a/include/math-emu/op-common.h
+++ b/include/math-emu/op-common.h
@@ -73,7 +73,7 @@ do { \
X##_c = FP_CLS_NAN; \
/* Check for signaling NaN */ \
if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_SNAN); \
} \
break; \
} \
@@ -324,7 +324,7 @@ do { \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
R##_s = _FP_NANSIGN_##fs; \
R##_c = FP_CLS_NAN; \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_ISI); \
break; \
} \
/* FALLTHRU */ \
@@ -431,7 +431,7 @@ do { \
R##_s = _FP_NANSIGN_##fs; \
R##_c = FP_CLS_NAN; \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_IMZ);\
break; \
\
default: \
@@ -490,11 +490,15 @@ do { \
break; \
\
case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \
+ R##_s = _FP_NANSIGN_##fs; \
+ R##_c = FP_CLS_NAN; \
+ _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_IDI);\
case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_ZERO): \
R##_s = _FP_NANSIGN_##fs; \
R##_c = FP_CLS_NAN; \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
- FP_SET_EXCEPTION(FP_EX_INVALID); \
+ FP_SET_EXCEPTION(FP_EX_INVALID | FP_EX_INVALID_ZDZ);\
break; \
\
default: \
diff --git a/include/math-emu/soft-fp.h b/include/math-emu/soft-fp.h
index a6f873b..3f284bc 100644
--- a/include/math-emu/soft-fp.h
+++ b/include/math-emu/soft-fp.h
@@ -51,6 +51,25 @@
#ifndef FP_EX_INVALID
#define FP_EX_INVALID 0
#endif
+#ifndef FP_EX_INVALID_SNAN
+#define FP_EX_INVALID_SNAN 0
+#endif
+/* inf - inf */
+#ifndef FP_EX_INVALID_ISI
+#define FP_EX_INVALID_ISI 0
+#endif
+/* inf / inf */
+#ifndef FP_EX_INVALID_IDI
+#define FP_EX_INVALID_IDI 0
+#endif
+/* 0 / 0 */
+#ifndef FP_EX_INVALID_ZDZ
+#define FP_EX_INVALID_ZDZ 0
+#endif
+/* inf * 0 */
+#ifndef FP_EX_INVALID_IMZ
+#define FP_EX_INVALID_IMZ 0
+#endif
#ifndef FP_EX_OVERFLOW
#define FP_EX_OVERFLOW 0
#endif
--
1.5.5.1

2008-08-21 13:49:54

by Stephen Rothwell

[permalink] [raw]
Subject: Re: [PATCH] math-emu: Fix compiler warnings

Hi Kumar,

On Thu, 21 Aug 2008 07:50:20 -0500 Kumar Gala <[email protected]> wrote:
>
> Fix warnings of the form:
> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f1' may be used uninitialized in this function
> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f0' may be used uninitialized in this function
>
> Signed-off-by: Kumar Gala <[email protected]>
> ---
>
> I intend these patches to go via the powerpc.git tree if no one has issues.
>
> - k
>
> include/math-emu/op-2.h | 2 +-

Are you modifying the right file here? There is also
arch/powerpc/math-emu/op-2.h which contains the same construct.

--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/


Attachments:
(No filename) (730.00 B)
(No filename) (197.00 B)
Download all attachments

2008-08-21 14:21:32

by Kumar Gala

[permalink] [raw]
Subject: Re: [PATCH] math-emu: Fix compiler warnings


On Aug 21, 2008, at 8:49 AM, Stephen Rothwell wrote:

> Hi Kumar,
>
> On Thu, 21 Aug 2008 07:50:20 -0500 Kumar Gala <[email protected]
> > wrote:
>>
>> Fix warnings of the form:
>> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f1' may be used
>> uninitialized in this function
>> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f0' may be used
>> uninitialized in this function
>>
>> Signed-off-by: Kumar Gala <[email protected]>
>> ---
>>
>> I intend these patches to go via the powerpc.git tree if no one has
>> issues.
>>
>> - k
>>
>> include/math-emu/op-2.h | 2 +-
>
> Are you modifying the right file here? There is also
> arch/powerpc/math-emu/op-2.h which contains the same construct.

I forgot to mention this is a precursor to moving arch/powerpc to
using the generic math-emu code in include/math-emu/

I don't see any reason to fixup the old code.

- k

2008-08-21 21:03:55

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] math-emu: Fix compiler warnings

From: Kumar Gala <[email protected]>
Date: Thu, 21 Aug 2008 07:50:20 -0500

> Fix warnings of the form:
> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f1' may be used uninitialized in this function
> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f0' may be used uninitialized in this function
>
> Signed-off-by: Kumar Gala <[email protected]>

You should look at the compiler options we use on sparc to build this
stuff :-)

EXTRA_CFLAGS = -Iinclude/math-emu -w

2008-08-21 21:05:19

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] math-emu: Add support for reporting exact invalid exception

From: Kumar Gala <[email protected]>
Date: Thu, 21 Aug 2008 07:50:21 -0500

> Some architectures (like powerpc) provide status information on the exact
> type of invalid exception. This is pretty straight forward as we already
> report invalid exceptions via FP_SET_EXCEPTION.
>
> We add new flags (FP_EX_INVALID_*) the architecture code can define if it
> wants the exact invalid exception reported.
>
> We had to split out the INF/INF and 0/0 cases for divide to allow reporting
> the two invalid forms properly.
>
> Signed-off-by: Kumar Gala <[email protected]>

Acked-by: David S. Miller <[email protected]>

2008-08-21 22:00:09

by Kumar Gala

[permalink] [raw]
Subject: Re: [PATCH] math-emu: Fix compiler warnings


On Aug 21, 2008, at 4:03 PM, David Miller wrote:

> From: Kumar Gala <[email protected]>
> Date: Thu, 21 Aug 2008 07:50:20 -0500
>
>> Fix warnings of the form:
>> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f1' may be used
>> uninitialized in this function
>> arch/powerpc/math-emu/fsubs.c:15: warning: 'R_f0' may be used
>> uninitialized in this function
>>
>> Signed-off-by: Kumar Gala <[email protected]>
>
> You should look at the compiler options we use on sparc to build this
> stuff :-)
>
> EXTRA_CFLAGS = -Iinclude/math-emu -w

Yeah, I plan on doing that on PPC once I move over the global include/
math-emu files.

- k