Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
extF80_add.c File Reference
#include <stdbool.h>
#include <stdint.h>
#include "platform.h"
#include "internals.h"
#include "softfloat.h"
Include dependency graph for extF80_add.c:

Go to the source code of this file.

Functions

extFloat80_t extF80_add (extFloat80_t a, extFloat80_t b)
 

Function Documentation

◆ extF80_add()

extFloat80_t extF80_add ( extFloat80_t a,
extFloat80_t b )

Definition at line 43 of file extF80_add.c.

44{
45 union { struct extFloat80M s; extFloat80_t f; } uA;
46 uint_fast16_t uiA64;
47 uint_fast64_t uiA0;
48 bool signA;
49 union { struct extFloat80M s; extFloat80_t f; } uB;
50 uint_fast16_t uiB64;
51 uint_fast64_t uiB0;
52 bool signB;
53#if ! defined INLINE_LEVEL || (INLINE_LEVEL < 2)
55 (*magsFuncPtr)(
57#endif
58
59 uA.f = a;
60 uiA64 = uA.s.signExp;
61 uiA0 = uA.s.signif;
62 signA = signExtF80UI64( uiA64 );
63 uB.f = b;
64 uiB64 = uB.s.signExp;
65 uiB0 = uB.s.signif;
66 signB = signExtF80UI64( uiB64 );
67#if defined INLINE_LEVEL && (2 <= INLINE_LEVEL)
68 if ( signA == signB ) {
69 return softfloat_addMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
70 } else {
71 return softfloat_subMagsExtF80( uiA64, uiA0, uiB64, uiB0, signA );
72 }
73#else
74 magsFuncPtr =
76 return (*magsFuncPtr)( uiA64, uiA0, uiB64, uiB0, signA );
77#endif
78
79}
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1181
#define signExtF80UI64(a64)
Definition internals.h:146
struct extFloat80M extFloat80_t
extFloat80_t softfloat_addMagsExtF80(uint_fast16_t uiA64, uint_fast64_t uiA0, uint_fast16_t uiB64, uint_fast64_t uiB0, bool signZ)
extFloat80_t softfloat_subMagsExtF80(uint_fast16_t uiA64, uint_fast64_t uiA0, uint_fast16_t uiB64, uint_fast64_t uiB0, bool signZ)
uint16_t uint_fast16_t
Definition stdint.h:155
uint64_t uint_fast64_t
Definition stdint.h:157
uint16_t signExp
char * s
Here is the call graph for this function: