All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] softfloat: export float32_nan and float32_infinity.
@ 2011-02-14 16:47 Christophe Lyon
  2011-02-16 11:53 ` Peter Maydell
  0 siblings, 1 reply; 3+ messages in thread
From: Christophe Lyon @ 2011-02-14 16:47 UTC (permalink / raw)
  To: qemu-devel


These two special values are needed to implement some helper functions, which return these values in some cases.

Signed-off-by: Christophe Lyon <christophe.lyon@st.com>
---
 fpu/softfloat-specialize.h |    9 +++++++++
 fpu/softfloat.h            |    2 ++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h
index 2d025bf..d5d8c63 100644
--- a/fpu/softfloat-specialize.h
+++ b/fpu/softfloat-specialize.h
@@ -201,6 +201,15 @@ int float32_is_signaling_nan( float32 a_ )
 }
 
 /*----------------------------------------------------------------------------
+| Returns the default NaN.
+*----------------------------------------------------------------------------*/
+
+float32 float32_nan(void)
+{
+    return float32_default_nan;
+}
+
+/*----------------------------------------------------------------------------
 | Returns a quiet NaN if the single-precision floating point value `a' is a
 | signaling NaN; otherwise returns `a'.
 *----------------------------------------------------------------------------*/
diff --git a/fpu/softfloat.h b/fpu/softfloat.h
index e57ee1e..610f245 100644
--- a/fpu/softfloat.h
+++ b/fpu/softfloat.h
@@ -319,6 +319,7 @@ int float32_compare_quiet( float32, float32 STATUS_PARAM );
 int float32_is_quiet_nan( float32 );
 int float32_is_signaling_nan( float32 );
 float32 float32_maybe_silence_nan( float32 );
+float32 float32_nan(void);
 float32 float32_scalbn( float32, int STATUS_PARAM );
 
 INLINE float32 float32_abs(float32 a)
@@ -365,6 +366,7 @@ INLINE int float32_is_zero_or_denormal(float32 a)
 #define float32_zero make_float32(0)
 #define float32_one make_float32(0x3f800000)
 #define float32_ln2 make_float32(0x3f317218)
+#define float32_infinity make_float32(0x7f800000)
 
 /*----------------------------------------------------------------------------
 | Software IEC/IEEE double-precision conversion routines.
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] softfloat: export float32_nan and float32_infinity.
  2011-02-14 16:47 [Qemu-devel] [PATCH] softfloat: export float32_nan and float32_infinity Christophe Lyon
@ 2011-02-16 11:53 ` Peter Maydell
  2011-02-16 13:02   ` Christophe Lyon
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Maydell @ 2011-02-16 11:53 UTC (permalink / raw)
  To: Christophe Lyon; +Cc: qemu-devel

On 14 February 2011 16:47, Christophe Lyon <christophe.lyon@st.com> wrote:
>
> These two special values are needed to implement some helper functions, which return these values in some cases.

I assume this is for vrecpe, right? I think it would be better
to post this as part of that patchset; it's easier to see the
rationale for adding the functions when you also have the
code that's using them.

>  /*----------------------------------------------------------------------------
> +| Returns the default NaN.
> +*----------------------------------------------------------------------------*/
> +
> +float32 float32_nan(void)
> +{
> +    return float32_default_nan;
> +}

Maybe we should just expose float32_default_nan in
softfloat.h somehow; that would match float32_zero,
float32_one, etc (ie it would not be a function).

> +#define float32_infinity make_float32(0x7f800000)

No objection to this one.

-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] softfloat: export float32_nan and float32_infinity.
  2011-02-16 11:53 ` Peter Maydell
@ 2011-02-16 13:02   ` Christophe Lyon
  0 siblings, 0 replies; 3+ messages in thread
From: Christophe Lyon @ 2011-02-16 13:02 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-devel

On 16.02.2011 12:53, Peter Maydell wrote:
> On 14 February 2011 16:47, Christophe Lyon <christophe.lyon@st.com> wrote:
>>
>> These two special values are needed to implement some helper functions, which return these values in some cases.
> 
> I assume this is for vrecpe, right? I think it would be better
> to post this as part of that patchset; it's easier to see the
> rationale for adding the functions when you also have the
> code that's using them.

Indeed. I'll post the bigger patch.

>>  /*----------------------------------------------------------------------------
>> +| Returns the default NaN.
>> +*----------------------------------------------------------------------------*/
>> +
>> +float32 float32_nan(void)
>> +{
>> +    return float32_default_nan;
>> +}
> 
> Maybe we should just expose float32_default_nan in
> softfloat.h somehow; that would match float32_zero,
> float32_one, etc (ie it would not be a function).
> 
It was my initial intention, but it implies adding a #if defined(TARGET_XXX) block in softfloat.h, and I feared this was not desirable.

Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-02-16 13:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-14 16:47 [Qemu-devel] [PATCH] softfloat: export float32_nan and float32_infinity Christophe Lyon
2011-02-16 11:53 ` Peter Maydell
2011-02-16 13:02   ` Christophe Lyon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.