comparison gcc/config/mips/sb1.md @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 ;; Copyright (C) 2004-2018 Free Software Foundation, Inc. 1 ;; Copyright (C) 2004-2020 Free Software Foundation, Inc.
2 ;; 2 ;;
3 ;; This file is part of GCC. 3 ;; This file is part of GCC.
4 ;; 4 ;;
5 ;; GCC is free software; you can redistribute it and/or modify 5 ;; GCC is free software; you can redistribute it and/or modify
6 ;; it under the terms of the GNU General Public License as published by 6 ;; it under the terms of the GNU General Public License as published by
125 125
126 ;; ??? This is 1 cycle for ldl/ldr to ldl/ldr when they use the same data 126 ;; ??? This is 1 cycle for ldl/ldr to ldl/ldr when they use the same data
127 ;; register as destination. 127 ;; register as destination.
128 128
129 ;; ??? SB-1 can co-issue a load with a dependent arith insn if it executes on 129 ;; ??? SB-1 can co-issue a load with a dependent arith insn if it executes on
130 ;; an EX unit. Can not co-issue if the dependent insn executes on an LS unit. 130 ;; an EX unit. Cannot co-issue if the dependent insn executes on an LS unit.
131 ;; SB-1A can always co-issue here. 131 ;; SB-1A can always co-issue here.
132 132
133 ;; A load normally has a latency of zero cycles. In some cases, dependent 133 ;; A load normally has a latency of zero cycles. In some cases, dependent
134 ;; insns can be issued in the same cycle. However, a value of 1 gives 134 ;; insns can be issued in the same cycle. However, a value of 1 gives
135 ;; better performance in empirical testing. 135 ;; better performance in empirical testing.
142 (define_insn_reservation "ir_sb1a_load" 0 142 (define_insn_reservation "ir_sb1a_load" 0
143 (and (eq_attr "cpu" "sb1a") 143 (and (eq_attr "cpu" "sb1a")
144 (eq_attr "type" "load,prefetch")) 144 (eq_attr "type" "load,prefetch"))
145 "sb1_ls0 | sb1_ls1") 145 "sb1_ls0 | sb1_ls1")
146 146
147 ;; Can not co-issue fpload with fp exe when in 32-bit mode. 147 ;; Cannot co-issue fpload with fp exe when in 32-bit mode.
148 148
149 (define_insn_reservation "ir_sb1_fpload" 0 149 (define_insn_reservation "ir_sb1_fpload" 0
150 (and (eq_attr "cpu" "sb1,sb1a") 150 (and (eq_attr "cpu" "sb1,sb1a")
151 (and (eq_attr "type" "fpload") 151 (and (eq_attr "type" "fpload")
152 (match_test "TARGET_FLOAT64"))) 152 (match_test "TARGET_FLOAT64")))
250 (define_insn_reservation "ir_sb1_simple_alu" 2 250 (define_insn_reservation "ir_sb1_simple_alu" 2
251 (and (eq_attr "cpu" "sb1") 251 (and (eq_attr "cpu" "sb1")
252 (eq_attr "type" "const,arith,logical,move,signext")) 252 (eq_attr "type" "const,arith,logical,move,signext"))
253 "sb1_ls1 | sb1_ex1 | sb1_ex0") 253 "sb1_ls1 | sb1_ex1 | sb1_ex0")
254 254
255 ;; On SB-1A, simple alu instructions can not execute on the LS1 unit, and we 255 ;; On SB-1A, simple alu instructions cannot execute on the LS1 unit, and we
256 ;; have none of the above problems. 256 ;; have none of the above problems.
257 257
258 (define_insn_reservation "ir_sb1a_simple_alu" 1 258 (define_insn_reservation "ir_sb1a_simple_alu" 1
259 (and (eq_attr "cpu" "sb1a") 259 (and (eq_attr "cpu" "sb1a")
260 (eq_attr "type" "const,arith,logical,move,signext")) 260 (eq_attr "type" "const,arith,logical,move,signext"))