|.macro addo32., y, a, b
| // Need to check overflow for (a<<32) + (b<<32).
| rldicr TMP0, a, 32, 31
- | rldicr TMP3, b, 32, 31
- | addo. TMP0, TMP0, TMP3
+ | rldicr TMP1, b, 32, 31
+ | addo. TMP0, TMP0, TMP1
| add y, a, b
|.endmacro
- | ins_arith addo32., fadd
+ | ins_arith addo32., fadd, __adddf3
|.else
- | ins_arith addo., fadd
+ | ins_arith addo., fadd, __adddf3
|.endif
break;
case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
|.macro subo32., y, a, b
| // Need to check overflow for (a<<32) - (b<<32).
| rldicr TMP0, a, 32, 31
- | rldicr TMP3, b, 32, 31
- | subo. TMP0, TMP0, TMP3
+ | rldicr TMP1, b, 32, 31
+ | subo. TMP0, TMP0, TMP1
| sub y, a, b
|.endmacro
- | ins_arith subo32., fsub
+ | ins_arith subo32., fsub, __subdf3
|.else
- | ins_arith subo., fsub
+ | ins_arith subo., fsub, __subdf3
|.endif
break;
case BC_MULVN: case BC_MULNV: case BC_MULVV: