@@ -1483,8 +1483,8 @@ PP(pp_multiply)
1483
1483
} /* SvIOK(svr) */
1484
1484
#endif
1485
1485
{
1486
- NV right = SvNV_nomg (svr );
1487
1486
NV left = SvNV_nomg (svl );
1487
+ NV right = SvNV_nomg (svr );
1488
1488
NV result = left * right ;
1489
1489
1490
1490
#if defined(__sgi ) && defined(USE_LONG_DOUBLE ) && LONG_DOUBLEKIND == LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE && NVSIZE == 16
@@ -1611,8 +1611,8 @@ PP(pp_divide)
1611
1611
} /* one operand wasn't SvIOK */
1612
1612
#endif /* PERL_TRY_UV_DIVIDE */
1613
1613
{
1614
- NV right = SvNV_nomg (svr );
1615
1614
NV left = SvNV_nomg (svl );
1615
+ NV right = SvNV_nomg (svr );
1616
1616
#if defined(NAN_COMPARE_BROKEN ) && defined(Perl_isnan )
1617
1617
if (! Perl_isnan (right ) && right == 0.0 )
1618
1618
#else
@@ -2061,14 +2061,10 @@ PP(pp_subtract)
2061
2061
useleft = USE_LEFT (svl );
2062
2062
#endif
2063
2063
{
2064
- NV value = SvNV_nomg (svr );
2065
-
2066
- if (!useleft ) {
2067
- /* left operand is undef, treat as zero - value */
2068
- TARGn (- value , 1 );
2069
- goto ret ;
2070
- }
2071
- TARGn (SvNV_nomg (svl ) - value , 1 );
2064
+ /* If left operand is undef, treat as zero - value */
2065
+ NV value = useleft ? SvNV_nomg (svl ) : 0.0 ;
2066
+ value -= SvNV_nomg (svr );
2067
+ TARGn (value , 1 );
2072
2068
goto ret ;
2073
2069
}
2074
2070
@@ -2356,8 +2352,8 @@ Perl_do_ncmp(pTHX_ SV* const left, SV * const right)
2356
2352
}
2357
2353
#endif
2358
2354
{
2359
- NV const rnv = SvNV_nomg (right );
2360
2355
NV const lnv = SvNV_nomg (left );
2356
+ NV const rnv = SvNV_nomg (right );
2361
2357
2362
2358
#if defined(NAN_COMPARE_BROKEN ) && defined(Perl_isnan )
2363
2359
if (Perl_isnan (lnv ) || Perl_isnan (rnv )) {
@@ -2888,8 +2884,8 @@ PP(pp_i_multiply)
2888
2884
if (rpp_try_AMAGIC_2 (mult_amg , AMGf_assign ))
2889
2885
return NORMAL ;
2890
2886
2891
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
2892
2887
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
2888
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
2893
2889
2894
2890
TARGi ((IV )((UV )left * (UV )right ), 1 );
2895
2891
rpp_replace_2_1_NN (targ );
@@ -2910,10 +2906,10 @@ PP(pp_i_divide)
2910
2906
SV * left = PL_stack_sp [-1 ];
2911
2907
2912
2908
{
2909
+ IV num = SvIV_nomg (left );
2913
2910
IV value = SvIV_nomg (right );
2914
2911
if (value == 0 )
2915
2912
DIE (aTHX_ "Illegal division by zero" );
2916
- IV num = SvIV_nomg (left );
2917
2913
2918
2914
/* avoid FPE_INTOVF on some platforms when num is IV_MIN */
2919
2915
if (value == -1 )
@@ -2936,8 +2932,8 @@ PP(pp_i_modulo)
2936
2932
if (rpp_try_AMAGIC_2 (modulo_amg , AMGf_assign ))
2937
2933
return NORMAL ;
2938
2934
2939
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
2940
2935
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
2936
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
2941
2937
2942
2938
{
2943
2939
if (!right )
@@ -2962,9 +2958,9 @@ PP(pp_i_add)
2962
2958
if (rpp_try_AMAGIC_2 (add_amg , AMGf_assign ))
2963
2959
return NORMAL ;
2964
2960
2965
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
2966
2961
SV * leftsv = PL_stack_sp [-1 ];
2967
2962
IV left = USE_LEFT (leftsv ) ? SvIV_nomg (leftsv ) : 0 ;
2963
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
2968
2964
2969
2965
TARGi ((IV )((UV )left + (UV )right ), 1 );
2970
2966
rpp_replace_2_1_NN (targ );
@@ -2981,9 +2977,9 @@ PP(pp_i_subtract)
2981
2977
if (rpp_try_AMAGIC_2 (subtr_amg , AMGf_assign ))
2982
2978
return NORMAL ;
2983
2979
2984
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
2985
2980
SV * leftsv = PL_stack_sp [-1 ];
2986
2981
IV left = USE_LEFT (leftsv ) ? SvIV_nomg (leftsv ) : 0 ;
2982
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
2987
2983
2988
2984
TARGi ((IV )((UV )left - (UV )right ), 1 );
2989
2985
rpp_replace_2_1_NN (targ );
@@ -2996,8 +2992,8 @@ PP(pp_i_lt)
2996
2992
if (rpp_try_AMAGIC_2 (lt_amg , 0 ))
2997
2993
return NORMAL ;
2998
2994
2999
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3000
2995
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
2996
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3001
2997
3002
2998
rpp_replace_2_IMM_NN (boolSV (left < right ));
3003
2999
return NORMAL ;
@@ -3009,8 +3005,8 @@ PP(pp_i_gt)
3009
3005
if (rpp_try_AMAGIC_2 (gt_amg , 0 ))
3010
3006
return NORMAL ;
3011
3007
3012
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3013
3008
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
3009
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3014
3010
3015
3011
rpp_replace_2_IMM_NN (boolSV (left > right ));
3016
3012
return NORMAL ;
@@ -3022,8 +3018,8 @@ PP(pp_i_le)
3022
3018
if (rpp_try_AMAGIC_2 (le_amg , 0 ))
3023
3019
return NORMAL ;
3024
3020
3025
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3026
3021
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
3022
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3027
3023
3028
3024
rpp_replace_2_IMM_NN (boolSV (left <= right ));
3029
3025
return NORMAL ;
@@ -3035,8 +3031,8 @@ PP(pp_i_ge)
3035
3031
if (rpp_try_AMAGIC_2 (ge_amg , 0 ))
3036
3032
return NORMAL ;
3037
3033
3038
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3039
3034
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
3035
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3040
3036
3041
3037
rpp_replace_2_IMM_NN (boolSV (left >= right ));
3042
3038
return NORMAL ;
@@ -3048,8 +3044,8 @@ PP(pp_i_eq)
3048
3044
if (rpp_try_AMAGIC_2 (eq_amg , 0 ))
3049
3045
return NORMAL ;
3050
3046
3051
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3052
3047
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
3048
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3053
3049
3054
3050
rpp_replace_2_IMM_NN (boolSV (left == right ));
3055
3051
return NORMAL ;
@@ -3061,8 +3057,8 @@ PP(pp_i_ne)
3061
3057
if (rpp_try_AMAGIC_2 (ne_amg , 0 ))
3062
3058
return NORMAL ;
3063
3059
3064
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3065
3060
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
3061
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3066
3062
3067
3063
rpp_replace_2_IMM_NN (boolSV (left != right ));
3068
3064
return NORMAL ;
@@ -3075,8 +3071,8 @@ PP(pp_i_ncmp)
3075
3071
if (rpp_try_AMAGIC_2 (ncmp_amg , 0 ))
3076
3072
return NORMAL ;
3077
3073
3078
- IV right = SvIV_nomg (PL_stack_sp [0 ]);
3079
3074
IV left = SvIV_nomg (PL_stack_sp [-1 ]);
3075
+ IV right = SvIV_nomg (PL_stack_sp [0 ]);
3080
3076
3081
3077
3082
3078
{
@@ -3122,8 +3118,8 @@ PP(pp_atan2)
3122
3118
if (rpp_try_AMAGIC_2 (atan2_amg , 0 ))
3123
3119
return NORMAL ;
3124
3120
3125
- NV right = SvNV_nomg (PL_stack_sp [0 ]);
3126
3121
NV left = SvNV_nomg (PL_stack_sp [-1 ]);
3122
+ NV right = SvNV_nomg (PL_stack_sp [0 ]);
3127
3123
3128
3124
TARGn (Perl_atan2 (left , right ), 1 );
3129
3125
rpp_replace_2_1_NN (targ );
0 commit comments