diff options
author | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2012-05-23 23:21:13 +0200 |
---|---|---|
committer | Marco Bodrato <bodrato@mail.dm.unipi.it> | 2012-05-23 23:21:13 +0200 |
commit | ae7cbcdb411f86c4e11e4c3da21a4968b97f2858 (patch) | |
tree | e34aba63c1746bf8e84c46f43ba3f16fc5f0cb5e /mpf | |
parent | 9a031234bde3abdee5de779604feab6e30abb0fb (diff) | |
download | gmp-ae7cbcdb411f86c4e11e4c3da21a4968b97f2858.tar.gz |
Mark failing branches with UNLIKELY.
Diffstat (limited to 'mpf')
-rw-r--r-- | mpf/div.c | 11 | ||||
-rw-r--r-- | mpf/div_ui.c | 13 | ||||
-rw-r--r-- | mpf/sqrt.c | 2 | ||||
-rw-r--r-- | mpf/ui_div.c | 5 |
4 files changed, 17 insertions, 14 deletions
@@ -55,12 +55,8 @@ mpf_div (mpf_ptr r, mpf_srcptr u, mpf_srcptr v) usize = SIZ(u); vsize = SIZ(v); - sign_quotient = usize ^ vsize; - usize = ABS (usize); - vsize = ABS (vsize); - prec = PREC(r); - if (vsize == 0) + if (UNLIKELY (vsize == 0)) DIVIDE_BY_ZERO; if (usize == 0) @@ -70,6 +66,11 @@ mpf_div (mpf_ptr r, mpf_srcptr u, mpf_srcptr v) return; } + sign_quotient = usize ^ vsize; + usize = ABS (usize); + vsize = ABS (vsize); + prec = PREC(r); + TMP_MARK; rexp = EXP(u) - EXP(v) + 1; diff --git a/mpf/div_ui.c b/mpf/div_ui.c index 2f4de1511..4236291db 100644 --- a/mpf/div_ui.c +++ b/mpf/div_ui.c @@ -50,14 +50,11 @@ mpf_div_ui (mpf_ptr r, mpf_srcptr u, unsigned long int v) } #endif - usize = u->_mp_size; - sign_quotient = usize; - usize = ABS (usize); - prec = r->_mp_prec; - - if (v == 0) + if (UNLIKELY (v == 0)) DIVIDE_BY_ZERO; + usize = u->_mp_size; + if (usize == 0) { r->_mp_size = 0; @@ -65,6 +62,10 @@ mpf_div_ui (mpf_ptr r, mpf_srcptr u, unsigned long int v) return; } + sign_quotient = usize; + usize = ABS (usize); + prec = r->_mp_prec; + TMP_MARK; rp = r->_mp_d; diff --git a/mpf/sqrt.c b/mpf/sqrt.c index dce9aff46..138950ffa 100644 --- a/mpf/sqrt.c +++ b/mpf/sqrt.c @@ -59,7 +59,7 @@ mpf_sqrt (mpf_ptr r, mpf_srcptr u) TMP_DECL; usize = u->_mp_size; - if (usize <= 0) + if (UNLIKELY (usize <= 0)) { if (usize < 0) SQRT_OF_NEGATIVE; diff --git a/mpf/ui_div.c b/mpf/ui_div.c index 39a0bd919..5d36dc1d3 100644 --- a/mpf/ui_div.c +++ b/mpf/ui_div.c @@ -38,8 +38,6 @@ mpf_ui_div (mpf_ptr r, unsigned long int u, mpf_srcptr v) vsize = v->_mp_size; sign_quotient = vsize; - vsize = ABS (vsize); - prec = r->_mp_prec; if (UNLIKELY (vsize == 0)) DIVIDE_BY_ZERO; @@ -51,6 +49,9 @@ mpf_ui_div (mpf_ptr r, unsigned long int u, mpf_srcptr v) return; } + vsize = ABS (vsize); + prec = r->_mp_prec; + TMP_MARK; rexp = 1 - v->_mp_exp + 1; |