aboutsummaryrefslogtreecommitdiff
path: root/softfloat
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2010-08-17 17:46:52 -0700
committerAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2010-08-17 17:46:52 -0700
commitb46f178e5884c6744895a84937014ec73d4a10c8 (patch)
tree1f1f6b3c77e60bea462a3394f1b4dce2bba4f823 /softfloat
parent9ba7af90cc234485785350b47dd063ad8298901b (diff)
downloadspike-b46f178e5884c6744895a84937014ec73d4a10c8.zip
spike-b46f178e5884c6744895a84937014ec73d4a10c8.tar.gz
spike-b46f178e5884c6744895a84937014ec73d4a10c8.tar.bz2
[sim] specialized softfloat for riscv
Diffstat (limited to 'softfloat')
-rwxr-xr-xsoftfloat/SoftFloat-3/source/riscv/s_commonNaNToF32UI.c2
-rwxr-xr-xsoftfloat/SoftFloat-3/source/riscv/s_commonNaNToF64UI.c3
-rwxr-xr-xsoftfloat/SoftFloat-3/source/riscv/s_f32UIToCommonNaN.c2
-rwxr-xr-xsoftfloat/SoftFloat-3/source/riscv/s_f64UIToCommonNaN.c2
-rwxr-xr-xsoftfloat/SoftFloat-3/source/riscv/specialize.h6
5 files changed, 7 insertions, 8 deletions
diff --git a/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF32UI.c b/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF32UI.c
index 3b96c41..61f2735 100755
--- a/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF32UI.c
+++ b/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF32UI.c
@@ -11,7 +11,7 @@
uint_fast32_t softfloat_commonNaNToF32UI( struct commonNaN a )
{
- return (uint_fast32_t) a.sign<<31 | 0x7FC00000 | a.v64>>41;
+ return (uint_fast32_t) a.sign<<31 | 0x7FFFFFFF;
}
diff --git a/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF64UI.c b/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF64UI.c
index 474ceee..da36c04 100755
--- a/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF64UI.c
+++ b/softfloat/SoftFloat-3/source/riscv/s_commonNaNToF64UI.c
@@ -12,8 +12,7 @@ uint_fast64_t softfloat_commonNaNToF64UI( struct commonNaN a )
{
return
- (uint_fast64_t) a.sign<<63 | UINT64_C( 0x7FF8000000000000 )
- | a.v64>>12;
+ (uint_fast64_t) a.sign<<63 | UINT64_C( 0x7FFFFFFFFFFFFFFF );
}
diff --git a/softfloat/SoftFloat-3/source/riscv/s_f32UIToCommonNaN.c b/softfloat/SoftFloat-3/source/riscv/s_f32UIToCommonNaN.c
index 067e8da..9ee0db9 100755
--- a/softfloat/SoftFloat-3/source/riscv/s_f32UIToCommonNaN.c
+++ b/softfloat/SoftFloat-3/source/riscv/s_f32UIToCommonNaN.c
@@ -17,7 +17,7 @@ struct commonNaN softfloat_f32UIToCommonNaN( uint_fast32_t uiA )
softfloat_raiseFlags( softfloat_flag_invalid );
}
z.sign = uiA>>31;
- z.v64 = (uint_fast64_t) uiA<<41;
+ z.v64 = (uint_fast64_t) 0x7FFFF <<41;
z.v0 = 0;
return z;
diff --git a/softfloat/SoftFloat-3/source/riscv/s_f64UIToCommonNaN.c b/softfloat/SoftFloat-3/source/riscv/s_f64UIToCommonNaN.c
index f933ded..84d8ca0 100755
--- a/softfloat/SoftFloat-3/source/riscv/s_f64UIToCommonNaN.c
+++ b/softfloat/SoftFloat-3/source/riscv/s_f64UIToCommonNaN.c
@@ -17,7 +17,7 @@ struct commonNaN softfloat_f64UIToCommonNaN( uint_fast64_t uiA )
softfloat_raiseFlags( softfloat_flag_invalid );
}
z.sign = uiA>>63;
- z.v64 = uiA<<12;
+ z.v64 = (uint_fast64_t) 0xFFFFFFFFFFFFF <<12;
z.v0 = 0;
return z;
diff --git a/softfloat/SoftFloat-3/source/riscv/specialize.h b/softfloat/SoftFloat-3/source/riscv/specialize.h
index ca0bb1d..bf57bc9 100755
--- a/softfloat/SoftFloat-3/source/riscv/specialize.h
+++ b/softfloat/SoftFloat-3/source/riscv/specialize.h
@@ -37,7 +37,7 @@ these four paragraphs for those parts of this code that are retained.
/*----------------------------------------------------------------------------
*----------------------------------------------------------------------------*/
-#define init_detectTininess softfloat_tininess_afterRounding;
+#define init_detectTininess softfloat_tininess_beforeRounding;
/*----------------------------------------------------------------------------
| Structure used to transfer NaN representations from one format to another.
@@ -50,7 +50,7 @@ struct commonNaN {
/*----------------------------------------------------------------------------
| The pattern for a default generated single-precision NaN.
*----------------------------------------------------------------------------*/
-#define defaultNaNF32UI 0xFFC00000
+#define defaultNaNF32UI 0xFFFFFFFF
/*----------------------------------------------------------------------------
| Returns 1 if the single-precision floating-point value `a' is a signaling
@@ -68,7 +68,7 @@ bool softfloat_isSigNaNF32UI( uint_fast32_t );
struct commonNaN softfloat_f32UIToCommonNaN( uint_fast32_t );
#if defined INLINE_LEVEL && ( 1 <= INLINE_LEVEL )
INLINE uint_fast32_t softfloat_commonNaNToF32UI( struct commonNaN a )
- { return (uint_fast32_t) a.sign<<31 | 0x7FC00000 | a.v64>>41; }
+ { return (uint_fast32_t) a.sign<<31 | 0x7FFFFFFF; }
#else
uint_fast32_t softfloat_commonNaNToF32UI( struct commonNaN );
#endif