refactors zeroProd branch to allow for better case handling
This commit is contained in:
parent
7ffa7667b6
commit
2edd68d1bd
|
@ -212,13 +212,18 @@ float32_t
|
|||
/*------------------------------------------------------------------------
|
||||
*------------------------------------------------------------------------*/
|
||||
zeroProd:
|
||||
uiZ = (uiC & ~(1UL << 31)) | ((unsigned long)signC << 31); //set sign bit
|
||||
if ( ! (expC | sigC) && (signProd != signC) ) {
|
||||
completeCancellation:
|
||||
uiZ =
|
||||
packToF32UI(
|
||||
(softfloat_roundingMode == softfloat_round_min), 0, 0 );
|
||||
uiZ = (uiZ & ~(1UL << 31)) | ((unsigned long)(signC|signProd) << 31); //set sign bit
|
||||
if(expC | sigC){
|
||||
//3rd operand != 0
|
||||
uiZ = (uiC & ~(1UL << 31)) | ((unsigned long)(signC) << 31); //set sign bit
|
||||
}
|
||||
else {
|
||||
//3rd operand == +-0
|
||||
if (signProd != signC) {
|
||||
completeCancellation:
|
||||
uiZ = packToF32UI((softfloat_roundingMode == softfloat_round_min), 0, 0 );
|
||||
goto uiZ;
|
||||
}
|
||||
uiZ = (uiC & ~(1UL << 31)) | ((unsigned long)signC << 31); //set sign bit
|
||||
}
|
||||
uiZ:
|
||||
uZ.ui = uiZ;
|
||||
|
|
Loading…
Reference in New Issue