comparison gcc/config/mips/4130.md @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents 77e2b8dfacca
children 84e7813d76e9
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 ;; Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. 1 ;; Copyright (C) 2004-2017 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
70 ;; The scheduling hooks use this attribute for (b) above. 70 ;; The scheduling hooks use this attribute for (b) above.
71 (define_attr "vr4130_class" "mul,mem,alu" 71 (define_attr "vr4130_class" "mul,mem,alu"
72 (cond [(eq_attr "type" "load,store") 72 (cond [(eq_attr "type" "load,store")
73 (const_string "mem") 73 (const_string "mem")
74 74
75 (eq_attr "type" "mfhilo,mthilo,imul,imul3,imadd,idiv") 75 (eq_attr "type" "mfhi,mflo,mthi,mtlo,imul,imul3,imadd,idiv")
76 (const_string "mul")] 76 (const_string "mul")]
77 (const_string "alu"))) 77 (const_string "alu")))
78 78
79 (define_insn_reservation "vr4130_multi" 1 79 (define_insn_reservation "vr4130_multi" 1
80 (and (eq_attr "cpu" "r4130") 80 (and (eq_attr "cpu" "r4130")
81 (eq_attr "type" "multi,unknown")) 81 (eq_attr "type" "multi,unknown,atomic,syncloop"))
82 "vr4130_alu1 + vr4130_alu2 + vr4130_dcache + vr4130_muldiv") 82 "vr4130_alu1 + vr4130_alu2 + vr4130_dcache + vr4130_muldiv")
83 83
84 (define_insn_reservation "vr4130_int" 1 84 (define_insn_reservation "vr4130_int" 1
85 (and (eq_attr "cpu" "r4130") 85 (and (eq_attr "cpu" "r4130")
86 (eq_attr "type" "arith,const,logical,move,nop,shift,signext,slt")) 86 (eq_attr "type" "arith,const,logical,move,nop,shift,signext,slt"))
96 (eq_attr "type" "store")) 96 (eq_attr "type" "store"))
97 "vr4130_dcache") 97 "vr4130_dcache")
98 98
99 (define_insn_reservation "vr4130_mfhilo" 3 99 (define_insn_reservation "vr4130_mfhilo" 3
100 (and (eq_attr "cpu" "r4130") 100 (and (eq_attr "cpu" "r4130")
101 (eq_attr "type" "mfhilo")) 101 (eq_attr "type" "mfhi,mflo"))
102 "vr4130_muldiv") 102 "vr4130_muldiv")
103 103
104 (define_insn_reservation "vr4130_mthilo" 1 104 (define_insn_reservation "vr4130_mthilo" 1
105 (and (eq_attr "cpu" "r4130") 105 (and (eq_attr "cpu" "r4130")
106 (eq_attr "type" "mthilo")) 106 (eq_attr "type" "mthi,mtlo"))
107 "vr4130_muldiv") 107 "vr4130_muldiv")
108 108
109 ;; The product is available in LO & HI after one cycle. Moving the result 109 ;; The product is available in LO & HI after one cycle. Moving the result
110 ;; into an integer register will take an additional three cycles, see mflo 110 ;; into an integer register will take an additional three cycles, see mflo
111 ;; & mfhi above. Note that the same latencies and repeat rates apply if we 111 ;; & mfhi above. Note that the same latencies and repeat rates apply if we