- if ((GET_CODE (ops[1]) == CONST
- && !legitimate_const (ops[1], 0))
- || (TARGET_LARGE_MEM
- && (GET_CODE (ops[1]) == CONST
- || GET_CODE (ops[1]) == SYMBOL_REF
- || GET_CODE (ops[1]) == LABEL_REF)))
- {
- emit_insn (gen_high (ops[0], ops[1]));
- emit_insn (gen_low (ops[0], ops[0], ops[1]));
- if (flag_pic)
- {
- rtx pic_reg = get_pic_reg ();
- emit_insn (gen_addsi3 (ops[0], ops[0], pic_reg));
- current_function_uses_pic_offset_table = 1;
- }
- return 1;
- }
- if (flag_pic
- && (GET_CODE (ops[1]) == SYMBOL_REF
- || GET_CODE (ops[1]) == LABEL_REF
- || GET_CODE (ops[1]) == CONST))
- {
- rtx pic_reg = get_pic_reg ();
- emit_insn (gen_pic (ops[0], ops[1]));
- emit_insn (gen_addsi3 (ops[0], ops[0], pic_reg));
- current_function_uses_pic_offset_table = 1;
- return 1;
- }