Skip to content

Commit

Permalink
infnan: infnan-ness is unlikely.
Browse files Browse the repository at this point in the history
  • Loading branch information
jhi committed Sep 25, 2014
1 parent 8444187 commit a83034f
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions pp.c
Expand Up @@ -2842,7 +2842,7 @@ PP(pp_int)
}
else {
const NV value = SvNV_nomg(sv);
if (SvNOK(sv) && Perl_isinfnan(SvNV(sv)))
if (SvNOK(sv) && UNLIKELY(Perl_isinfnan(SvNV(sv))))
SETn(SvNV(sv));
else if (value >= 0.0) {
if (value < (NV)UV_MAX + 0.5) {
Expand Down Expand Up @@ -3394,7 +3394,7 @@ PP(pp_chr)
SV *top = POPs;

SvGETMAGIC(top);
if (SvNOK(top) && Perl_isinfnan(SvNV(top)))
if (SvNOK(top) && UNLIKELY(Perl_isinfnan(SvNV(top))))
Perl_croak(aTHX_ "Cannot chr %"NVgf, SvNV(top));
else {
if (!IN_BYTES /* under bytes, chr(-1) eq chr(0xff), etc. */
Expand Down
14 changes: 7 additions & 7 deletions sv.c
Expand Up @@ -2102,7 +2102,7 @@ S_sv_2iuv_common(pTHX_ SV *const sv)
* IV or UV at same time to avoid this. */
/* IV-over-UV optimisation - choose to cache IV if possible */

if (Perl_isinfnan(SvNVX(sv)))
if (UNLIKELY(Perl_isinfnan(SvNVX(sv))))
return FALSE;

if (SvTYPE(sv) == SVt_NV)
Expand Down Expand Up @@ -2373,7 +2373,7 @@ Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags)
if (SvGMAGICAL(sv) && (flags & SV_GMAGIC))
mg_get(sv);

if (SvNOK(sv) && Perl_isinfnan(SvNVX(sv)))
if (SvNOK(sv) && UNLIKELY(Perl_isinfnan(SvNVX(sv))))
return 0; /* So wrong but what can we do. */

if (SvROK(sv)) {
Expand Down Expand Up @@ -2468,7 +2468,7 @@ Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags)
if (SvGMAGICAL(sv) && (flags & SV_GMAGIC))
mg_get(sv);

if (SvNOK(sv) && Perl_isinfnan(SvNVX(sv)))
if (SvNOK(sv) && UNLIKELY(Perl_isinfnan(SvNVX(sv))))
return 0; /* So wrong but what can we do. */

if (SvROK(sv)) {
Expand Down Expand Up @@ -8652,7 +8652,7 @@ Perl_sv_inc_nomg(pTHX_ SV *const sv)
}
if (flags & SVp_NOK) {
const NV was = SvNVX(sv);
if (!Perl_isinfnan(was) &&
if (LIKELY(!Perl_isinfnan(was)) &&
NV_OVERFLOWS_INTEGERS_AT &&
was >= NV_OVERFLOWS_INTEGERS_AT) {
/* diag_listed_as: Lost precision when %s %f by 1 */
Expand Down Expand Up @@ -8831,7 +8831,7 @@ Perl_sv_dec_nomg(pTHX_ SV *const sv)
oops_its_num:
{
const NV was = SvNVX(sv);
if (!Perl_isinfnan(was) &&
if (LIKELY(!Perl_isinfnan(was)) &&
NV_OVERFLOWS_INTEGERS_AT &&
was <= -NV_OVERFLOWS_INTEGERS_AT) {
/* diag_listed_as: Lost precision when %s %f by 1 */
Expand Down Expand Up @@ -10616,7 +10616,7 @@ S_F0convert(NV nv, char *const endbuf, STRLEN *const len)

PERL_ARGS_ASSERT_F0CONVERT;

if (Perl_isinfnan(nv)) {
if (UNLIKELY(Perl_isinfnan(nv))) {
STRLEN n = S_infnan_2pv(nv, endbuf - *len, *len);
*len = n;
return endbuf - n;
Expand Down Expand Up @@ -11517,7 +11517,7 @@ Perl_sv_vcatpvfn_flags(pTHX_ SV *const sv, const char *const pat, const STRLEN p

if (argsv && SvNOK(argsv)) {
/* XXX va_arg(*args) case? need peek, use va_copy? */
infnan = Perl_isinfnan(SvNV(argsv));
infnan = UNLIKELY(Perl_isinfnan(SvNV(argsv)));
}

switch (c = *q++) {
Expand Down

0 comments on commit a83034f

Please sign in to comment.