Skip to content

Commit 90f2473

Browse files
rerobikaLaszloLango
authored andcommitted
Remove trivial ecma_number arithmetic functions (#2123)
The affected function calls have been replaced with the appropriate arithmetic operands. JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik [email protected]
1 parent 8b10951 commit 90f2473

File tree

9 files changed

+29
-115
lines changed

9 files changed

+29
-115
lines changed

jerry-core/ecma/base/ecma-helpers-conversion.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,7 @@ ecma_number_to_uint32 (ecma_number_t num) /**< ecma-number */
845845
}
846846

847847
const bool sign = ecma_number_is_negative (num);
848-
const ecma_number_t abs_num = sign ? ecma_number_negate (num) : num;
848+
const ecma_number_t abs_num = sign ? -num : num;
849849

850850
/* 2 ^ 32 */
851851
const uint64_t uint64_2_pow_32 = (1ull << 32);
@@ -1126,7 +1126,7 @@ ecma_number_to_utf8_string (ecma_number_t num, /**< ecma-number */
11261126
{
11271127
/* 3. */
11281128
*dst_p++ = LIT_CHAR_MINUS;
1129-
num = ecma_number_negate (num);
1129+
num = -num;
11301130
}
11311131

11321132
if (ecma_number_is_infinity (num))

jerry-core/ecma/base/ecma-helpers-number.c

Lines changed: 6 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ ecma_number_get_prev (ecma_number_t num) /**< ecma-number */
520520

521521
if (ecma_number_is_negative (num))
522522
{
523-
return ecma_number_negate (ecma_number_get_next (num));
523+
return -ecma_number_get_next (num);
524524
}
525525

526526
uint32_t biased_exp = ecma_number_get_biased_exponent_field (num);
@@ -555,7 +555,7 @@ ecma_number_get_next (ecma_number_t num) /**< ecma-number */
555555

556556
if (ecma_number_is_negative (num))
557557
{
558-
return ecma_number_negate (ecma_number_get_prev (num));
558+
return -ecma_number_get_prev (num);
559559
}
560560

561561
uint32_t biased_exp = ecma_number_get_biased_exponent_field (num);
@@ -581,35 +581,6 @@ ecma_number_get_next (ecma_number_t num) /**< ecma-number */
581581
fraction);
582582
} /* ecma_number_get_next */
583583

584-
/**
585-
* Negate ecma-number
586-
*
587-
* @return negated number
588-
*/
589-
ecma_number_t
590-
ecma_number_negate (ecma_number_t num) /**< ecma-number */
591-
{
592-
ecma_number_t negated = -num;
593-
594-
#ifndef JERRY_NDEBUG
595-
bool sign;
596-
uint32_t biased_exp;
597-
uint64_t fraction;
598-
599-
ecma_number_unpack (num, &sign, &biased_exp, &fraction);
600-
601-
sign = !sign;
602-
603-
ecma_number_t negated_ieee754 = ecma_number_pack (sign, biased_exp, fraction);
604-
605-
JERRY_ASSERT (negated == negated_ieee754
606-
|| (ecma_number_is_nan (negated)
607-
&& ecma_number_is_nan (negated_ieee754)));
608-
#endif /* !JERRY_NDEBUG */
609-
610-
return negated;
611-
} /* ecma_number_negate */
612-
613584
/**
614585
* Truncate fractional part of the number
615586
*
@@ -637,7 +608,7 @@ ecma_number_trunc (ecma_number_t num) /**< ecma-number */
637608
exponent);
638609
if (sign)
639610
{
640-
return ecma_number_negate (tmp);
611+
return -tmp;
641612
}
642613
else
643614
{
@@ -670,66 +641,18 @@ ecma_number_calc_remainder (ecma_number_t left_num, /**< left operand */
670641
&& !ecma_number_is_zero (right_num)
671642
&& !ecma_number_is_infinity (right_num));
672643

673-
const ecma_number_t q = ecma_number_trunc (ecma_number_divide (left_num, right_num));
674-
ecma_number_t r = ecma_number_substract (left_num, ecma_number_multiply (right_num, q));
644+
const ecma_number_t q = ecma_number_trunc (left_num / right_num);
645+
ecma_number_t r = left_num - right_num * q;
675646

676647
if (ecma_number_is_zero (r)
677648
&& ecma_number_is_negative (left_num))
678649
{
679-
r = ecma_number_negate (r);
650+
r = -r;
680651
}
681652

682653
return r;
683654
} /* ecma_number_calc_remainder */
684655

685-
/**
686-
* ECMA-number addition.
687-
*
688-
* @return number - result of addition.
689-
*/
690-
ecma_number_t
691-
ecma_number_add (ecma_number_t left_num, /**< left operand */
692-
ecma_number_t right_num) /**< right operand */
693-
{
694-
return left_num + right_num;
695-
} /* ecma_number_add */
696-
697-
/**
698-
* ECMA-number substraction.
699-
*
700-
* @return number - result of substraction.
701-
*/
702-
ecma_number_t
703-
ecma_number_substract (ecma_number_t left_num, /**< left operand */
704-
ecma_number_t right_num) /**< right operand */
705-
{
706-
return ecma_number_add (left_num, ecma_number_negate (right_num));
707-
} /* ecma_number_substract */
708-
709-
/**
710-
* ECMA-number multiplication.
711-
*
712-
* @return number - result of multiplication.
713-
*/
714-
ecma_number_t
715-
ecma_number_multiply (ecma_number_t left_num, /**< left operand */
716-
ecma_number_t right_num) /**< right operand */
717-
{
718-
return left_num * right_num;
719-
} /* ecma_number_multiply */
720-
721-
/**
722-
* ECMA-number division.
723-
*
724-
* @return number - result of division.
725-
*/
726-
ecma_number_t
727-
ecma_number_divide (ecma_number_t left_num, /**< left operand */
728-
ecma_number_t right_num) /**< right operand */
729-
{
730-
return left_num / right_num;
731-
} /* ecma_number_divide */
732-
733656
/**
734657
* @}
735658
* @}

jerry-core/ecma/base/ecma-helpers-string.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1988,7 +1988,7 @@ ecma_get_string_magic (const ecma_string_t *string_p) /**< ecma-string */
19881988
*
19891989
* @return calculated hash
19901990
*/
1991-
lit_string_hash_t
1991+
inline lit_string_hash_t __attr_always_inline___
19921992
ecma_string_hash (const ecma_string_t *string_p) /**< ecma-string to calculate hash for */
19931993
{
19941994
return (string_p->hash);

jerry-core/ecma/base/ecma-helpers.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,8 @@ ecma_number_t
241241
ecma_number_make_from_sign_mantissa_and_exponent (bool sign, uint64_t mantissa, int32_t exponent);
242242
ecma_number_t ecma_number_get_prev (ecma_number_t num);
243243
ecma_number_t ecma_number_get_next (ecma_number_t num);
244-
ecma_number_t ecma_number_negate (ecma_number_t num);
245244
ecma_number_t ecma_number_trunc (ecma_number_t num);
246245
ecma_number_t ecma_number_calc_remainder (ecma_number_t left_num, ecma_number_t right_num);
247-
ecma_number_t ecma_number_add (ecma_number_t left_num, ecma_number_t right_num);
248-
ecma_number_t ecma_number_substract (ecma_number_t left_num, ecma_number_t right_num);
249-
ecma_number_t ecma_number_multiply (ecma_number_t left_num, ecma_number_t right_num);
250-
ecma_number_t ecma_number_divide (ecma_number_t left_num, ecma_number_t right_num);
251246
lit_utf8_size_t ecma_number_to_decimal (ecma_number_t num, lit_utf8_byte_t *out_digits_p, int32_t *out_decimal_exp_p);
252247
lit_utf8_size_t ecma_number_to_binary_floating_point_number (ecma_number_t num,
253248
lit_utf8_byte_t *out_digits_p,

jerry-core/ecma/builtin-objects/ecma-builtin-helpers.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ ecma_builtin_helper_array_index_normalize (ecma_number_t index, /**< index */
273273
{
274274
if (ecma_number_is_negative (index))
275275
{
276-
ecma_number_t index_neg = ecma_number_negate (index);
276+
ecma_number_t index_neg = -index;
277277

278278
if (index_neg > length)
279279
{

jerry-core/ecma/builtin-objects/ecma-builtin-math.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ ecma_builtin_math_dispatch_routine (uint16_t builtin_routine_id, /**< built-in w
295295
else if (ecma_number_is_negative (x)
296296
&& x >= -ECMA_NUMBER_HALF)
297297
{
298-
x = ecma_number_negate (ECMA_NUMBER_ZERO);
298+
x = -ECMA_NUMBER_ZERO;
299299
}
300300
else
301301
{

jerry-core/vm/opcodes-ecma-arithmetics.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@ do_number_arithmetic (number_arithmetic_op op, /**< number arithmetic operation
5656
{
5757
case NUMBER_ARITHMETIC_SUBSTRACTION:
5858
{
59-
result = ecma_number_substract (num_left, num_right);
59+
result = num_left - num_right;
6060
break;
6161
}
6262
case NUMBER_ARITHMETIC_MULTIPLICATION:
6363
{
64-
result = ecma_number_multiply (num_left, num_right);
64+
result = num_left * num_right;
6565
break;
6666
}
6767
case NUMBER_ARITHMETIC_DIVISION:
6868
{
69-
result = ecma_number_divide (num_left, num_right);
69+
result = num_left / num_right;
7070
break;
7171
}
7272
case NUMBER_ARITHMETIC_REMAINDER:
@@ -150,7 +150,7 @@ opfunc_addition (ecma_value_t left_value, /**< left value */
150150
ECMA_OP_TO_NUMBER_TRY_CATCH (num_left, left_value, ret_value);
151151
ECMA_OP_TO_NUMBER_TRY_CATCH (num_right, right_value, ret_value);
152152

153-
ret_value = ecma_make_number_value (ecma_number_add (num_left, num_right));
153+
ret_value = ecma_make_number_value (num_left + num_right);
154154

155155
ECMA_OP_TO_NUMBER_FINALIZE (num_right);
156156
ECMA_OP_TO_NUMBER_FINALIZE (num_left);
@@ -187,8 +187,7 @@ opfunc_unary_operation (ecma_value_t left_value, /**< left value */
187187
left_value,
188188
ret_value);
189189

190-
ret_value = ecma_make_number_value (is_plus ? num_var_value
191-
: ecma_number_negate (num_var_value));
190+
ret_value = ecma_make_number_value (is_plus ? num_var_value : -num_var_value);
192191

193192
ECMA_OP_TO_NUMBER_FINALIZE (num_var_value);
194193

jerry-core/vm/vm.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1696,8 +1696,8 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
16961696
if (ecma_is_value_float_number (left_value)
16971697
&& ecma_is_value_number (right_value))
16981698
{
1699-
ecma_number_t new_value = ecma_number_add (ecma_get_float_from_value (left_value),
1700-
ecma_get_number_from_value (right_value));
1699+
ecma_number_t new_value = (ecma_get_float_from_value (left_value) +
1700+
ecma_get_number_from_value (right_value));
17011701

17021702
result = ecma_update_float_number (left_value, new_value);
17031703
left_value = ECMA_VALUE_UNDEFINED;
@@ -1707,8 +1707,8 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
17071707
if (ecma_is_value_float_number (right_value)
17081708
&& ecma_is_value_integer_number (left_value))
17091709
{
1710-
ecma_number_t new_value = ecma_number_add ((ecma_number_t) ecma_get_integer_from_value (left_value),
1711-
ecma_get_float_from_value (right_value));
1710+
ecma_number_t new_value = ((ecma_number_t) ecma_get_integer_from_value (left_value) +
1711+
ecma_get_float_from_value (right_value));
17121712

17131713
result = ecma_update_float_number (right_value, new_value);
17141714
right_value = ECMA_VALUE_UNDEFINED;
@@ -1743,8 +1743,8 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
17431743
if (ecma_is_value_float_number (left_value)
17441744
&& ecma_is_value_number (right_value))
17451745
{
1746-
ecma_number_t new_value = ecma_number_substract (ecma_get_float_from_value (left_value),
1747-
ecma_get_number_from_value (right_value));
1746+
ecma_number_t new_value = (ecma_get_float_from_value (left_value) -
1747+
ecma_get_number_from_value (right_value));
17481748

17491749
result = ecma_update_float_number (left_value, new_value);
17501750
left_value = ECMA_VALUE_UNDEFINED;
@@ -1754,8 +1754,8 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
17541754
if (ecma_is_value_float_number (right_value)
17551755
&& ecma_is_value_integer_number (left_value))
17561756
{
1757-
ecma_number_t new_value = ecma_number_substract ((ecma_number_t) ecma_get_integer_from_value (left_value),
1758-
ecma_get_float_from_value (right_value));
1757+
ecma_number_t new_value = ((ecma_number_t) ecma_get_integer_from_value (left_value) -
1758+
ecma_get_float_from_value (right_value));
17591759

17601760
result = ecma_update_float_number (right_value, new_value);
17611761
right_value = ECMA_VALUE_UNDEFINED;
@@ -1797,17 +1797,16 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
17971797
break;
17981798
}
17991799

1800-
ecma_number_t multiply = ecma_number_multiply ((ecma_number_t) left_integer,
1801-
(ecma_number_t) right_integer);
1800+
ecma_number_t multiply = (ecma_number_t) left_integer * (ecma_number_t) right_integer;
18021801
result = ecma_make_number_value (multiply);
18031802
break;
18041803
}
18051804

18061805
if (ecma_is_value_float_number (left_value)
18071806
&& ecma_is_value_number (right_value))
18081807
{
1809-
ecma_number_t new_value = ecma_number_multiply (ecma_get_float_from_value (left_value),
1810-
ecma_get_number_from_value (right_value));
1808+
ecma_number_t new_value = (ecma_get_float_from_value (left_value) *
1809+
ecma_get_number_from_value (right_value));
18111810

18121811
result = ecma_update_float_number (left_value, new_value);
18131812
left_value = ECMA_VALUE_UNDEFINED;
@@ -1817,8 +1816,8 @@ vm_loop (vm_frame_ctx_t *frame_ctx_p) /**< frame context */
18171816
if (ecma_is_value_float_number (right_value)
18181817
&& ecma_is_value_integer_number (left_value))
18191818
{
1820-
ecma_number_t new_value = ecma_number_multiply ((ecma_number_t) ecma_get_integer_from_value (left_value),
1821-
ecma_get_float_from_value (right_value));
1819+
ecma_number_t new_value = ((ecma_number_t) ecma_get_integer_from_value (left_value) *
1820+
ecma_get_float_from_value (right_value));
18221821

18231822
result = ecma_update_float_number (right_value, new_value);
18241823
right_value = ECMA_VALUE_UNDEFINED;

tests/unit-core/test-number-to-integer.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ main (void)
4343
#define TEST_CASE(num, uint32) { num, uint32 }
4444
TEST_CASE (1.0, 1),
4545
TEST_CASE (0.0, 0),
46-
TEST_CASE (ecma_number_negate (0.0), 0),
4746
TEST_CASE (NAN, 0),
4847
TEST_CASE (-NAN, 0),
4948
TEST_CASE (INFINITY, 0),
@@ -73,7 +72,6 @@ main (void)
7372
#define TEST_CASE(num, int32) { num, int32 }
7473
TEST_CASE (1.0, 1),
7574
TEST_CASE (0.0, 0),
76-
TEST_CASE (ecma_number_negate (0.0), 0),
7775
TEST_CASE (NAN, 0),
7876
TEST_CASE (-NAN, 0),
7977
TEST_CASE (INFINITY, 0),

0 commit comments

Comments
 (0)