From 0b196b187b335a83b98c9dcad22b75ba84c455b9 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 18 Apr 2005 09:13:00 -0700 Subject: alpha.c (alpha_split_atomic_op): New. * config/alpha/alpha.c (alpha_split_atomic_op): New. (alphaev5_insn_pipe): Add LD_L, ST_C, MB types. (alphaev4_insn_pipe): Likewise. Correct IST and LDSYM pipes. * config/alpha/alpha-protos.h: Update. * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New. (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New. (attr type): Add ld_l, st_c, mb. (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal, iornotsi3, xorsi_internal, xornotsi3): New. * config/alpha/ev4.md (ev4_ld): Add ld_l. (ev4_ist_c, ev4_mb): New. * config/alpha/ev5.md (ev5_st): Add st_c, mb. (ev5_ld_l): New. * config/alpha/ev6.md (ev6_ild): Add ld_l. (ev6_ist): Add st_c. (ev6_mb): New. * config/alpha/sync.md: New file. From-SVN: r98328 --- gcc/config/alpha/ev5.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'gcc/config/alpha/ev5.md') diff --git a/gcc/config/alpha/ev5.md b/gcc/config/alpha/ev5.md index d4b0b95..b61cfe8 100644 --- a/gcc/config/alpha/ev5.md +++ b/gcc/config/alpha/ev5.md @@ -43,7 +43,7 @@ (define_insn_reservation "ev5_st" 1 (and (eq_attr "tune" "ev5") - (eq_attr "type" "ist,fst")) + (eq_attr "type" "ist,fst,st_c,mb")) "ev5_e0+ev5_st") ; Loads from L0 complete in two cycles. adjust_cost still factors @@ -53,6 +53,11 @@ (eq_attr "type" "ild,fld,ldsym")) "ev5_e01+ev5_ld") +(define_insn_reservation "ev5_ld_l" 1 + (and (eq_attr "tune" "ev5") + (eq_attr "type" "ld_l")) + "ev5_e0+ev5_ld") + ; Integer branches slot only to E1. (define_insn_reservation "ev5_ibr" 1 (and (eq_attr "tune" "ev5") @@ -129,7 +134,7 @@ ; Model this instead with increased latency on the input instruction. (define_bypass 3 - "ev5_ld,ev5_shift,ev5_mvi,ev5_cmov,ev5_iadd,ev5_ilogcmp" + "ev5_ld,ev5_ld_l,ev5_shift,ev5_mvi,ev5_cmov,ev5_iadd,ev5_ilogcmp" "ev5_imull,ev5_imulq,ev5_imulh") (define_bypass 9 "ev5_imull" "ev5_imull,ev5_imulq,ev5_imulh") -- cgit v1.1