OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1ksim/] [softfloat/] [softfloat-macros] - Diff between revs 233 and 236

Show entire file | Details | Blame | View Log

Rev 233 Rev 236
Line 126... Line 126...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = z0;
    *z0Ptr = z0;
 
 
}
}
 
 
 
 
 
#ifndef NO_SOFTFLOAT_UNUSED
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the
| Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the
| number of bits given in `count'.  Any bits shifted off are lost.  The value
| number of bits given in `count'.  Any bits shifted off are lost.  The value
| of `count' can be arbitrarily large; in particular, if `count' is greater
| of `count' can be arbitrarily large; in particular, if `count' is greater
| than 128, the result will be 0.  The result is broken into two 64-bit pieces
| than 128, the result will be 0.  The result is broken into two 64-bit pieces
Line 325... Line 327...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = z0;
    *z0Ptr = z0;
 
 
}
}
 
 
 
#endif
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Adds the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit
| Adds the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit
| value formed by concatenating `b0' and `b1'.  Addition is modulo 2^128, so
| value formed by concatenating `b0' and `b1'.  Addition is modulo 2^128, so
| any carry out is lost.  The result is broken into two 64-bit pieces which
| any carry out is lost.  The result is broken into two 64-bit pieces which
| are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
| are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
Line 344... Line 348...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = a0 + b0 + ( z1 < a1 );
    *z0Ptr = a0 + b0 + ( z1 < a1 );
 
 
}
}
 
 
 
#ifndef NO_SOFTFLOAT_UNUSED
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Adds the 192-bit value formed by concatenating `a0', `a1', and `a2' to the
| Adds the 192-bit value formed by concatenating `a0', `a1', and `a2' to the
| 192-bit value formed by concatenating `b0', `b1', and `b2'.  Addition is
| 192-bit value formed by concatenating `b0', `b1', and `b2'.  Addition is
| modulo 2^192, so any carry out is lost.  The result is broken into three
| modulo 2^192, so any carry out is lost.  The result is broken into three
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr',
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr',
Line 382... Line 388...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = z0;
    *z0Ptr = z0;
 
 
}
}
 
 
 
#endif
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Subtracts the 128-bit value formed by concatenating `b0' and `b1' from the
| Subtracts the 128-bit value formed by concatenating `b0' and `b1' from the
| 128-bit value formed by concatenating `a0' and `a1'.  Subtraction is modulo
| 128-bit value formed by concatenating `a0' and `a1'.  Subtraction is modulo
| 2^128, so any borrow out (carry out) is lost.  The result is broken into two
| 2^128, so any borrow out (carry out) is lost.  The result is broken into two
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr' and
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr' and
Line 400... Line 408...
    *z1Ptr = a1 - b1;
    *z1Ptr = a1 - b1;
    *z0Ptr = a0 - b0 - ( a1 < b1 );
    *z0Ptr = a0 - b0 - ( a1 < b1 );
 
 
}
}
 
 
 
#ifndef NO_SOFTFLOAT_UNUSED
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Subtracts the 192-bit value formed by concatenating `b0', `b1', and `b2'
| Subtracts the 192-bit value formed by concatenating `b0', `b1', and `b2'
| from the 192-bit value formed by concatenating `a0', `a1', and `a2'.
| from the 192-bit value formed by concatenating `a0', `a1', and `a2'.
| Subtraction is modulo 2^192, so any borrow out (carry out) is lost.  The
| Subtraction is modulo 2^192, so any borrow out (carry out) is lost.  The
| result is broken into three 64-bit pieces which are stored at the locations
| result is broken into three 64-bit pieces which are stored at the locations
Line 438... Line 448...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = z0;
    *z0Ptr = z0;
 
 
}
}
 
 
 
#endif
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Multiplies `a' by `b' to obtain a 128-bit product.  The product is broken
| Multiplies `a' by `b' to obtain a 128-bit product.  The product is broken
| into two 64-bit pieces which are stored at the locations pointed to by
| into two 64-bit pieces which are stored at the locations pointed to by
| `z0Ptr' and `z1Ptr'.
| `z0Ptr' and `z1Ptr'.
*----------------------------------------------------------------------------*/
*----------------------------------------------------------------------------*/
Line 467... Line 479...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = z0;
    *z0Ptr = z0;
 
 
}
}
 
 
 
#ifndef NO_SOFTFLOAT_UNUSED
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Multiplies the 128-bit value formed by concatenating `a0' and `a1' by
| Multiplies the 128-bit value formed by concatenating `a0' and `a1' by
| `b' to obtain a 192-bit product.  The product is broken into three 64-bit
| `b' to obtain a 192-bit product.  The product is broken into three 64-bit
| pieces which are stored at the locations pointed to by `z0Ptr', `z1Ptr', and
| pieces which are stored at the locations pointed to by `z0Ptr', `z1Ptr', and
| `z2Ptr'.
| `z2Ptr'.
Line 532... Line 546...
    *z1Ptr = z1;
    *z1Ptr = z1;
    *z0Ptr = z0;
    *z0Ptr = z0;
 
 
}
}
 
 
 
#endif
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Returns an approximation to the 64-bit integer quotient obtained by dividing
| Returns an approximation to the 64-bit integer quotient obtained by dividing
| `b' into the 128-bit value formed by concatenating `a0' and `a1'.  The
| `b' into the 128-bit value formed by concatenating `a0' and `a1'.  The
| divisor `b' must be at least 2^63.  If q is the exact quotient truncated
| divisor `b' must be at least 2^63.  If q is the exact quotient truncated
| toward zero, the approximation returned lies between q and q + 2 inclusive.
| toward zero, the approximation returned lies between q and q + 2 inclusive.
Line 664... Line 680...
    shiftCount += countLeadingZeros32( a );
    shiftCount += countLeadingZeros32( a );
    return shiftCount;
    return shiftCount;
 
 
}
}
 
 
 
#ifndef NO_SOFTFLOAT_UNUSED
 
 
/*----------------------------------------------------------------------------
/*----------------------------------------------------------------------------
| Returns 1 if the 128-bit value formed by concatenating `a0' and `a1'
| Returns 1 if the 128-bit value formed by concatenating `a0' and `a1'
| is equal to the 128-bit value formed by concatenating `b0' and `b1'.
| is equal to the 128-bit value formed by concatenating `b0' and `b1'.
| Otherwise, returns 0.
| Otherwise, returns 0.
*----------------------------------------------------------------------------*/
*----------------------------------------------------------------------------*/
Line 716... Line 734...
 
 
    return ( a0 != b0 ) || ( a1 != b1 );
    return ( a0 != b0 ) || ( a1 != b1 );
 
 
}
}
 
 
 
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.