Use constant 1 as the operand.
* config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
Rename gen_rdhwr to gen_rdhwr_synci_step_si or
gen_rdhwr_synci_step_di depending on the size of Pmode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142123
138bc75d-0d04-0410-961f-
82ee72b054a4
+2008-11-22 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
+ Use constant 1 as the operand.
+ * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
+ Rename gen_rdhwr to gen_rdhwr_synci_step_si or
+ gen_rdhwr_synci_step_di depending on the size of Pmode.
+
2008-11-22 Uros Bizjak <ubizjak@gmail.com>
PR target/38222
rtx inc, label, cmp, cmp_result;
/* Load INC with the cache line size (rdhwr INC,$1). */
- inc = gen_reg_rtx (SImode);
- emit_insn (gen_rdhwr (inc, const1_rtx));
+ inc = gen_reg_rtx (Pmode);
+ emit_insn (Pmode == SImode
+ ? gen_rdhwr_synci_step_si (inc)
+ : gen_rdhwr_synci_step_di (inc));
/* Loop back to here. */
label = gen_label_rtx ();
"ISA_HAS_SYNCI"
"synci\t0(%0)")
-(define_insn "rdhwr"
- [(set (match_operand:SI 0 "register_operand" "=d")
- (unspec_volatile [(match_operand:SI 1 "const_int_operand" "n")]
+(define_insn "rdhwr_synci_step_<mode>"
+ [(set (match_operand:P 0 "register_operand" "=d")
+ (unspec_volatile [(const_int 1)]
UNSPEC_RDHWR))]
"ISA_HAS_SYNCI"
- "rdhwr\t%0,$%1")
+ "rdhwr\t%0,$1")
(define_insn "clear_hazard"
[(unspec_volatile [(const_int 0)] UNSPEC_CLEAR_HAZARD)