rtx not_first = gen_label_rtx ();
rtx reg = gen_rtx_REG (DImode,
cfun->machine->args.reg[PRIVATE_SEGMENT_BUFFER_ARG]);
- rtx cmp = force_reg (DImode,
- gen_rtx_LSHIFTRT (DImode, reg, GEN_INT (48)));
+ reg = gcn_operand_part (DImode, reg, 1);
+ rtx cmp = force_reg (SImode,
+ gen_rtx_LSHIFTRT (SImode, reg, GEN_INT (16)));
emit_insn (gen_cstoresi4 (result, gen_rtx_NE (BImode, cmp,
GEN_INT(12345)),
cmp, GEN_INT(12345)));
const0_rtx),
result));
emit_move_insn (reg,
- force_reg (DImode,
- gen_rtx_IOR (DImode,
- gen_rtx_AND (DImode, reg,
- GEN_INT (0x0000ffffffffffffL)),
- GEN_INT (12345L << 48))));
- emit_insn (gen_prologue_use (reg));
+ force_reg (SImode,
+ gen_rtx_IOR (SImode,
+ gen_rtx_AND (SImode, reg, GEN_INT (0x0000ffff)),
+ GEN_INT (12345L << 16))));
+ emit_insn (gen_rtx_USE (VOIDmode, reg));
emit_label (not_first);
}
return result;
""
[(set_attr "length" "0")])
-(define_insn_and_split "prologue_use_di"
- [(unspec_volatile [(match_operand:DI 0 "register_operand")] UNSPECV_PROLOGUE_USE)]
- ""
- "#"
- "reload_completed"
- [(unspec_volatile [(match_dup 0)] UNSPECV_PROLOGUE_USE)
- (unspec_volatile [(match_dup 1)] UNSPECV_PROLOGUE_USE)]
- {
- operands[1] = gcn_operand_part (DImode, operands[0], 1);
- operands[0] = gcn_operand_part (DImode, operands[0], 0);
- }
- [(set_attr "length" "0")])
-
(define_expand "prologue"
[(const_int 0)]
""