emit_insn ((*genfunc) (operands[0], operands[1]));
DONE;
}
+
+ /* If we are loading a floating point constant that isn't 0 or 1 into a register,
+ indicate we need the pic register loaded. This could be optimized into stores
+ of constants if the target eventually moves to memory, but better safe than
+ sorry. */
+ if (flag_pic
+ && GET_CODE (operands[0]) != MEM
+ && GET_CODE (operands[1]) == CONST_DOUBLE
+ && !standard_80387_constant_p (operands[1]))
+ {
+ current_function_uses_pic_offset_table = 1;
+ }
}")
(define_insn "movsf_push_nomove"
emit_insn ((*genfunc) (operands[0], operands[1]));
DONE;
}
+
+ /* If we are loading a floating point constant that isn't 0 or 1 into a register,
+ indicate we need the pic register loaded. This could be optimized into stores
+ of constants if the target eventually moves to memory, but better safe than
+ sorry. */
+ if (flag_pic
+ && GET_CODE (operands[0]) != MEM
+ && GET_CODE (operands[1]) == CONST_DOUBLE
+ && !standard_80387_constant_p (operands[1]))
+ {
+ current_function_uses_pic_offset_table = 1;
+ }
}")
(define_insn "movdf_push_nomove"
emit_insn ((*genfunc) (operands[0], operands[1]));
DONE;
}
+
+ /* If we are loading a floating point constant that isn't 0 or 1 into a register,
+ indicate we need the pic register loaded. This could be optimized into stores
+ of constants if the target eventually moves to memory, but better safe than
+ sorry. */
+ if (flag_pic
+ && GET_CODE (operands[0]) != MEM
+ && GET_CODE (operands[1]) == CONST_DOUBLE
+ && !standard_80387_constant_p (operands[1]))
+ {
+ current_function_uses_pic_offset_table = 1;
+ }
}")