V8 Project
|
Typedefs | |
typedef integral_constant< bool, true > | true_type |
typedef integral_constant< bool, false > | false_type |
Enumerations | |
enum | IntegerRepresentation { INTEGER_REPRESENTATION_UNSIGNED , INTEGER_REPRESENTATION_SIGNED } |
enum | NumericRangeRepresentation { NUMERIC_RANGE_NOT_CONTAINED , NUMERIC_RANGE_CONTAINED } |
enum | RangeConstraint { RANGE_VALID = 0x0 , RANGE_UNDERFLOW = 0x1 , RANGE_OVERFLOW = 0x2 , RANGE_INVALID = RANGE_UNDERFLOW | RANGE_OVERFLOW } |
enum | NumericRepresentation { NUMERIC_INTEGER , NUMERIC_FLOATING , NUMERIC_UNKNOWN } |
enum | ArithmeticPromotionCategory { LEFT_PROMOTION , RIGHT_PROMOTION , DEFAULT_PROMOTION } |
Functions | |
RangeConstraint | GetRangeConstraint (int integer_range_constraint) |
RangeConstraint | GetRangeConstraint (bool is_in_upper_bound, bool is_in_lower_bound) |
template<typename Dst , typename Src > | |
RangeConstraint | DstRangeRelationToSrcRange (Src value) |
template<typename T > | |
bool | HasSignBit (T x) |
template<typename T > | |
T | BinaryComplement (T x) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer, T >::type | CheckedAdd (T x, T y, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer, T >::type | CheckedSub (T x, T y, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed &&(sizeof(T) *2 > sizeof(uintmax_t)), T >::type | CheckedMul (T x, T y, RangeConstraint *validity) |
template<typename T > | |
T | CheckedDiv (T x, T y, RangeConstraint *validity, typename enable_if< std::numeric_limits< T >::is_integer, int >::type=0) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, T >::type | CheckedMod (T x, T y, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedMod (T x, T y, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, T >::type | CheckedNeg (T value, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedNeg (T value, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&std::numeric_limits< T >::is_signed, T >::type | CheckedAbs (T value, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_integer &&!std::numeric_limits< T >::is_signed, T >::type | CheckedAbs (T value, RangeConstraint *validity) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_iec559, T >::type | CheckedNeg (T value, RangeConstraint *) |
template<typename T > | |
enable_if< std::numeric_limits< T >::is_iec559, T >::type | CheckedAbs (T value, RangeConstraint *) |
Variables | |
else * | validity |
return x * | y |
Definition at line 37 of file safe_math_impl.h.
Definition at line 36 of file safe_math_impl.h.
Enumerator | |
---|---|
LEFT_PROMOTION | |
RIGHT_PROMOTION | |
DEFAULT_PROMOTION |
Definition at line 479 of file safe_math_impl.h.
Enumerator | |
---|---|
INTEGER_REPRESENTATION_UNSIGNED | |
INTEGER_REPRESENTATION_SIGNED |
Definition at line 31 of file safe_conversions_impl.h.
Enumerator | |
---|---|
NUMERIC_RANGE_NOT_CONTAINED | |
NUMERIC_RANGE_CONTAINED |
Definition at line 41 of file safe_conversions_impl.h.
Enumerator | |
---|---|
NUMERIC_INTEGER | |
NUMERIC_FLOATING | |
NUMERIC_UNKNOWN |
Definition at line 359 of file safe_math_impl.h.
Enumerator | |
---|---|
RANGE_VALID | |
RANGE_UNDERFLOW | |
RANGE_OVERFLOW | |
RANGE_INVALID |
Definition at line 93 of file safe_conversions_impl.h.
Definition at line 135 of file safe_math_impl.h.
Referenced by CheckedAdd(), and CheckedSub().
enable_if<std::numeric_limits<T>::is_iec559, T>::type v8::base::internal::CheckedAbs | ( | T | value, |
RangeConstraint * | |||
) |
Definition at line 350 of file safe_math_impl.h.
enable_if< std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type v8::base::internal::CheckedAbs | ( | T | value, |
RangeConstraint * | validity | ||
) |
Definition at line 308 of file safe_math_impl.h.
References v8::internal::min(), RANGE_OVERFLOW, RANGE_VALID, and validity.
Referenced by v8::base::internal::CheckedNumeric< T >::Abs().
enable_if< std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type v8::base::internal::CheckedAbs | ( | T | value, |
RangeConstraint * | validity | ||
) |
enable_if<std::numeric_limits<T>::is_integer, T>::type v8::base::internal::CheckedAdd | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
Definition at line 145 of file safe_math_impl.h.
References BinaryComplement(), HasSignBit(), RANGE_OVERFLOW, RANGE_UNDERFLOW, RANGE_VALID, T, validity, and y.
T v8::base::internal::CheckedDiv | ( | T | x, |
T | y, | ||
RangeConstraint * | validity, | ||
typename enable_if< std::numeric_limits< T >::is_integer, int >::type | = 0 |
||
) |
Definition at line 249 of file safe_math_impl.h.
References v8::internal::min(), RANGE_OVERFLOW, RANGE_VALID, T, validity, and y.
enable_if< std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type v8::base::internal::CheckedMod | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
Definition at line 268 of file safe_math_impl.h.
References RANGE_INVALID, RANGE_VALID, validity, and y.
enable_if< std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type v8::base::internal::CheckedMod | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
Definition at line 277 of file safe_math_impl.h.
References RANGE_VALID, validity, and y.
enable_if<std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed && (sizeof(T) * 2 > sizeof(uintmax_t)), T>::type v8::base::internal::CheckedMul | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
Definition at line 240 of file safe_math_impl.h.
References RANGE_OVERFLOW, RANGE_VALID, validity, and y.
enable_if<std::numeric_limits<T>::is_iec559, T>::type v8::base::internal::CheckedNeg | ( | T | value, |
RangeConstraint * | |||
) |
Definition at line 343 of file safe_math_impl.h.
enable_if< std::numeric_limits<T>::is_integer && std::numeric_limits<T>::is_signed, T>::type v8::base::internal::CheckedNeg | ( | T | value, |
RangeConstraint * | validity | ||
) |
Definition at line 286 of file safe_math_impl.h.
References v8::internal::min(), RANGE_OVERFLOW, RANGE_VALID, and validity.
Referenced by v8::base::internal::CheckedNumeric< T >::operator-().
enable_if< std::numeric_limits<T>::is_integer && !std::numeric_limits<T>::is_signed, T>::type v8::base::internal::CheckedNeg | ( | T | value, |
RangeConstraint * | validity | ||
) |
Definition at line 297 of file safe_math_impl.h.
References RANGE_UNDERFLOW, RANGE_VALID, T, and validity.
enable_if<std::numeric_limits<T>::is_integer, T>::type v8::base::internal::CheckedSub | ( | T | x, |
T | y, | ||
RangeConstraint * | validity | ||
) |
Definition at line 168 of file safe_math_impl.h.
References BinaryComplement(), HasSignBit(), RANGE_OVERFLOW, RANGE_UNDERFLOW, RANGE_VALID, T, validity, and y.
|
inline |
|
inline |
Definition at line 110 of file safe_conversions_impl.h.
References GetRangeConstraint(), RANGE_OVERFLOW, and RANGE_UNDERFLOW.
|
inline |
Definition at line 101 of file safe_conversions_impl.h.
References DCHECK, RANGE_INVALID, and RANGE_VALID.
Referenced by v8::base::internal::CheckedNumeric< T >::Abs(), v8::base::internal::DstRangeRelationToSrcRangeImpl< Dst, Src, INTEGER_REPRESENTATION_SIGNED, INTEGER_REPRESENTATION_SIGNED, NUMERIC_RANGE_NOT_CONTAINED >::Check(), v8::base::internal::DstRangeRelationToSrcRangeImpl< Dst, Src, INTEGER_REPRESENTATION_UNSIGNED, INTEGER_REPRESENTATION_UNSIGNED, NUMERIC_RANGE_NOT_CONTAINED >::Check(), v8::base::internal::DstRangeRelationToSrcRangeImpl< Dst, Src, INTEGER_REPRESENTATION_SIGNED, INTEGER_REPRESENTATION_UNSIGNED, NUMERIC_RANGE_NOT_CONTAINED >::Check(), v8::base::internal::DstRangeRelationToSrcRangeImpl< Dst, Src, INTEGER_REPRESENTATION_UNSIGNED, INTEGER_REPRESENTATION_SIGNED, NUMERIC_RANGE_NOT_CONTAINED >::Check(), GetRangeConstraint(), v8::base::internal::CheckedNumeric< T >::operator-(), and v8::base::internal::CheckedNumericState< T, NUMERIC_FLOATING >::validity().
Definition at line 127 of file safe_math_impl.h.
Referenced by CheckedAdd(), and CheckedSub().
else* v8::base::internal::validity |
Definition at line 228 of file safe_math_impl.h.
Referenced by CheckedAbs(), CheckedAdd(), CheckedDiv(), CheckedMod(), CheckedMul(), CheckedNeg(), and CheckedSub().
return x* v8::base::internal::y |
Definition at line 232 of file safe_math_impl.h.
Referenced by v8::internal::ElementsAccessorBase< ElementsAccessorSubclass, ElementsTraitsParam >::AddElementsToFixedArray(), CheckedAdd(), CheckedDiv(), CheckedMod(), CheckedMul(), CheckedSub(), v8::internal::Variable::CompareIndex(), v8::internal::MakePair(), v8::internal::modulo(), v8::internal::ParserBase< Traits >::ParseBinaryExpression(), v8::internal::power_double_double(), v8::internal::power_double_int(), v8::internal::power_helper(), v8::internal::RUNTIME_FUNCTION(), v8::internal::ParserTraits::ShortcutNumericLiteralBinaryExpression(), v8::Value::StrictEquals(), v8::internal::CompareICState::TargetState(), v8::internal::compiler::TEST_F(), and v8::internal::CompareIC::UpdateCaches().