| LEFT | RIGHT |
| 1 %if instr.function_id in ['nb_add', 'nb_multiply', 'nb_subtract']: | 1 %if instr.function_id in ['nb_add', 'nb_multiply', 'nb_subtract', 'nb_true_divid
e']: |
| 2 <% inlined= True %> | 2 <% inlined= True %> |
| 3 { | 3 { |
| 4 double a, b; | 4 double a, b; |
| 5 | 5 |
| 6 % if instr.function_id == 'nb_add': | 6 % if instr.function_id == 'nb_add': |
| 7 PyFPE_START_PROTECT("add", (a= 0)); | 7 PyFPE_START_PROTECT("add", (a= 0)); |
| 8 a= PyFloat_AS_DOUBLE(v); | 8 a= PyFloat_AS_DOUBLE(v); |
| 9 b= PyFloat_AS_DOUBLE(w); | 9 b= PyFloat_AS_DOUBLE(w); |
| 10 a += b; | 10 a += b; |
| 11 PyFPE_END_PROTECT(a); | 11 PyFPE_END_PROTECT(a); |
| 12 % elif instr.function_id == 'nb_multiply': | 12 % elif instr.function_id == 'nb_multiply': |
| 13 PyFPE_START_PROTECT("mult", (a= 0)); | 13 PyFPE_START_PROTECT("mult", (a= 0)); |
| 14 a= PyFloat_AS_DOUBLE(v); | 14 a= PyFloat_AS_DOUBLE(v); |
| 15 b= PyFloat_AS_DOUBLE(w); | 15 b= PyFloat_AS_DOUBLE(w); |
| 16 a *= b; | 16 a *= b; |
| 17 PyFPE_END_PROTECT(a); | 17 PyFPE_END_PROTECT(a); |
| 18 % elif instr.function_id == 'nb_subtract': | 18 % elif instr.function_id == 'nb_subtract': |
| 19 PyFPE_START_PROTECT("sub", (a= 0)); | 19 PyFPE_START_PROTECT("sub", (a= 0)); |
| 20 a= PyFloat_AS_DOUBLE(v); | 20 a= PyFloat_AS_DOUBLE(v); |
| 21 b= PyFloat_AS_DOUBLE(w); | 21 b= PyFloat_AS_DOUBLE(w); |
| 22 a -= b; | 22 a -= b; |
| 23 PyFPE_END_PROTECT(a); | 23 PyFPE_END_PROTECT(a); |
| 24 % elif instr.function_id == 'nb_true_divide': |
| 25 PyFPE_START_PROTECT("divide", (a= 0)); |
| 26 a= PyFloat_AS_DOUBLE(v); |
| 27 b= PyFloat_AS_DOUBLE(w); |
| 28 a /= b; |
| 29 PyFPE_END_PROTECT(a); |
| 24 % endif | 30 % endif |
| 25 x= PyFloat_FromDouble(a); | 31 x= PyFloat_FromDouble(a); |
| 26 } | 32 } |
| 27 %endif | 33 %endif |
| LEFT | RIGHT |