Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/mips/10000.md @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | a06113de4d67 |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ;; DFA-based pipeline description for the VR1x000. | 1 ;; DFA-based pipeline description for the VR1x000. |
2 ;; Copyright (C) 2005, 2006, 2008 Free Software Foundation, Inc. | 2 ;; Copyright (C) 2005-2017 Free Software Foundation, Inc. |
3 ;; | 3 ;; |
4 ;; This file is part of GCC. | 4 ;; This file is part of GCC. |
5 | 5 |
6 ;; GCC is free software; you can redistribute it and/or modify it | 6 ;; GCC is free software; you can redistribute it and/or modify it |
7 ;; under the terms of the GNU General Public License as published | 7 ;; under the terms of the GNU General Public License as published |
66 | 66 |
67 ;; Integer add/sub + logic ops, and mt hi/lo can be done by alu1 or alu2. | 67 ;; Integer add/sub + logic ops, and mt hi/lo can be done by alu1 or alu2. |
68 ;; Miscellaneous arith goes here too (this is a guess). | 68 ;; Miscellaneous arith goes here too (this is a guess). |
69 (define_insn_reservation "r10k_arith" 1 | 69 (define_insn_reservation "r10k_arith" 1 |
70 (and (eq_attr "cpu" "r10000") | 70 (and (eq_attr "cpu" "r10000") |
71 (eq_attr "type" "arith,mthilo,slt,clz,const,nop,trap,logical")) | 71 (eq_attr "type" "arith,mthi,mtlo,slt,clz,const,nop,trap,logical")) |
72 "r10k_alu1 | r10k_alu2") | 72 "r10k_alu1 | r10k_alu2") |
73 | 73 |
74 ;; We treat mfhilo differently, because we need to know when | 74 ;; We treat mfhilo differently, because we need to know when |
75 ;; it's HI and when it's LO. | 75 ;; it's HI and when it's LO. |
76 (define_insn_reservation "r10k_mfhi" 1 | 76 (define_insn_reservation "r10k_mfhi" 1 |
77 (and (eq_attr "cpu" "r10000") | 77 (and (eq_attr "cpu" "r10000") |
78 (and (eq_attr "type" "mfhilo") | 78 (eq_attr "type" "mfhi")) |
79 (not (match_operand 1 "lo_operand")))) | |
80 "r10k_alu1 | r10k_alu2") | 79 "r10k_alu1 | r10k_alu2") |
81 | 80 |
82 (define_insn_reservation "r10k_mflo" 1 | 81 (define_insn_reservation "r10k_mflo" 1 |
83 (and (eq_attr "cpu" "r10000") | 82 (and (eq_attr "cpu" "r10000") |
84 (and (eq_attr "type" "mfhilo") | 83 (eq_attr "type" "mflo")) |
85 (match_operand 1 "lo_operand"))) | |
86 "r10k_alu1 | r10k_alu2") | 84 "r10k_alu1 | r10k_alu2") |
87 | 85 |
88 | 86 |
89 ;; ALU1 handles shifts, branch eval, and condmove. | 87 ;; ALU1 handles shifts, branch eval, and condmove. |
90 ;; | 88 ;; |
247 | 245 |
248 | 246 |
249 ;; Handle unknown/multi insns here (this is a guess). | 247 ;; Handle unknown/multi insns here (this is a guess). |
250 (define_insn_reservation "r10k_unknown" 1 | 248 (define_insn_reservation "r10k_unknown" 1 |
251 (and (eq_attr "cpu" "r10000") | 249 (and (eq_attr "cpu" "r10000") |
252 (eq_attr "type" "unknown,multi")) | 250 (eq_attr "type" "unknown,multi,atomic,syncloop")) |
253 "r10k_alu1 + r10k_alu2") | 251 "r10k_alu1 + r10k_alu2") |