Cast some expressions that multiply a long long constant by a
floating point constant to int64_t. This avoids the runtime conversion of the the other operand in a set of comparisons from int64_t to floating point and doing the comparisions in floating point. Suggested by: lidl Submitted by: Rasool Al-Saadi <ralsaadi@swin.edu.au> MFC after: 2 weeks (with r300779)
This commit is contained in:
parent
4eb767eab0
commit
fe4b5f6659
sys/netpfil/ipfw
@ -244,17 +244,17 @@ calculate_drop_prob(void *x)
|
||||
p *= (PIE_MAX_PROB << 12) / AQM_TIME_1S;
|
||||
|
||||
/* auto-tune drop probability */
|
||||
if (prob< PIE_MAX_PROB * 0.000001)
|
||||
if (prob < (int64_t)(PIE_MAX_PROB * 0.000001))
|
||||
p >>= 11 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.00001)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.00001))
|
||||
p >>= 9 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.0001)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.0001))
|
||||
p >>= 7 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.001)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.001))
|
||||
p >>= 5 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.01)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.01))
|
||||
p >>= 3 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.1)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.1))
|
||||
p >>= 1 + PIE_FIX_POINT_BITS+12;
|
||||
else
|
||||
p >>= PIE_FIX_POINT_BITS+12;
|
||||
|
@ -407,17 +407,17 @@ fq_calculate_drop_prob(void *x)
|
||||
p *= (PIE_MAX_PROB << 12) / AQM_TIME_1S;
|
||||
|
||||
/* auto-tune drop probability */
|
||||
if (prob< PIE_MAX_PROB * 0.000001)
|
||||
if (prob < (int64_t)(PIE_MAX_PROB * 0.000001))
|
||||
p >>= 11 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.00001)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.00001))
|
||||
p >>= 9 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.0001)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.0001))
|
||||
p >>= 7 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.001)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.001))
|
||||
p >>= 5 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.01)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.01))
|
||||
p >>= 3 + PIE_FIX_POINT_BITS+12;
|
||||
else if (prob < PIE_MAX_PROB * 0.1)
|
||||
else if (prob < (int64_t)(PIE_MAX_PROB * 0.1))
|
||||
p >>= 1 + PIE_FIX_POINT_BITS+12;
|
||||
else
|
||||
p >>= PIE_FIX_POINT_BITS+12;
|
||||
|
Loading…
x
Reference in New Issue
Block a user