summaryrefslogtreecommitdiff
path: root/mpf
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2012-05-23 23:21:13 +0200
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2012-05-23 23:21:13 +0200
commitae7cbcdb411f86c4e11e4c3da21a4968b97f2858 (patch)
treee34aba63c1746bf8e84c46f43ba3f16fc5f0cb5e /mpf
parent9a031234bde3abdee5de779604feab6e30abb0fb (diff)
downloadgmp-ae7cbcdb411f86c4e11e4c3da21a4968b97f2858.tar.gz
Mark failing branches with UNLIKELY.
Diffstat (limited to 'mpf')
-rw-r--r--mpf/div.c11
-rw-r--r--mpf/div_ui.c13
-rw-r--r--mpf/sqrt.c2
-rw-r--r--mpf/ui_div.c5
4 files changed, 17 insertions, 14 deletions
diff --git a/mpf/div.c b/mpf/div.c
index f01e91194..3488672d3 100644
--- a/mpf/div.c
+++ b/mpf/div.c
@@ -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;