aboutsummaryrefslogtreecommitdiff
path: root/softfloat/s_addMagsF32.c
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-06-12 20:27:10 -0700
committerAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-06-12 20:27:10 -0700
commit740f981cfd55604d46598144dccac26dd53f643c (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /softfloat/s_addMagsF32.c
parentc0ebf99d6bb3ef3cf252703b50b849bcbaa2ec59 (diff)
downloadspike-740f981cfd55604d46598144dccac26dd53f643c.zip
spike-740f981cfd55604d46598144dccac26dd53f643c.tar.gz
spike-740f981cfd55604d46598144dccac26dd53f643c.tar.bz2
[sim] renamed to riscv-isa-run
Diffstat (limited to 'softfloat/s_addMagsF32.c')
-rwxr-xr-xsoftfloat/s_addMagsF32.c75
1 files changed, 0 insertions, 75 deletions
diff --git a/softfloat/s_addMagsF32.c b/softfloat/s_addMagsF32.c
deleted file mode 100755
index f361e2b..0000000
--- a/softfloat/s_addMagsF32.c
+++ /dev/null
@@ -1,75 +0,0 @@
-
-#include <stdbool.h>
-#include <stdint.h>
-#include "platform.h"
-#include "primitives.h"
-#include "internals.h"
-#include "specialize.h"
-
-float32_t
- softfloat_addMagsF32( uint_fast32_t uiA, uint_fast32_t uiB, bool signZ )
-{
- int_fast16_t expA;
- uint_fast32_t sigA;
- int_fast16_t expB;
- uint_fast32_t sigB;
- int_fast16_t expDiff;
- uint_fast32_t uiZ;
- int_fast16_t expZ;
- uint_fast32_t sigZ;
- union ui32_f32 uZ;
-
- expA = expF32UI( uiA );
- sigA = fracF32UI( uiA );
- expB = expF32UI( uiB );
- sigB = fracF32UI( uiB );
- expDiff = expA - expB;
- sigA <<= 6;
- sigB <<= 6;
- if ( ! expDiff ) {
- if ( expA == 0xFF ) {
- if ( sigA | sigB ) goto propagateNaN;
- uiZ = uiA;
- goto uiZ;
- }
- if ( ! expA ) {
- uiZ = packToF32UI( signZ, 0, ( uiA + uiB ) & 0x7FFFFFFF );
- goto uiZ;
- }
- expZ = expA;
- sigZ = 0x40000000 + sigA + sigB;
- } else {
- if ( expDiff < 0 ) {
- if ( expB == 0xFF ) {
- if ( sigB ) goto propagateNaN;
- uiZ = packToF32UI( signZ, 0xFF, 0 );
- goto uiZ;
- }
- expZ = expB;
- sigA += expA ? 0x20000000 : sigA;
- sigA = softfloat_shift32RightJam( sigA, - expDiff );
- } else {
- if ( expA == 0xFF ) {
- if ( sigA ) goto propagateNaN;
- uiZ = uiA;
- goto uiZ;
- }
- expZ = expA;
- sigB += expB ? 0x20000000 : sigB;
- sigB = softfloat_shift32RightJam( sigB, expDiff );
- }
- sigZ = 0x20000000 + sigA + sigB;
- if ( sigZ < 0x40000000 ) {
- --expZ;
- sigZ <<= 1;
- }
- }
- return softfloat_roundPackToF32( signZ, expZ, sigZ );
- propagateNaN:
- uiZ = softfloat_propagateNaNF32UI( uiA, uiB );
- uiZ:
- uZ.ui = uiZ;
- return uZ.f;
-
-}
-