comparison gcc/config/rs6000/xfpu.md @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents a06113de4d67
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 ;; Scheduling description for the Xilinx PowerPC 405 APU Floating Point Unit. 1 ;; Scheduling description for the Xilinx PowerPC 405 APU Floating Point Unit.
2 ;; Copyright (C) 2008 Free Software Foundation, Inc. 2 ;; Copyright (C) 2008-2017 Free Software Foundation, Inc.
3 ;; Contributed by Michael Eager (eager@eagercon.com). 3 ;; Contributed by Michael Eager (eager@eagercon.com).
4 ;; 4 ;;
5 ;; This file is part of GCC. 5 ;; This file is part of GCC.
6 ;; 6 ;;
7 ;; GCC is free software; you can redistribute it and/or modify 7 ;; GCC is free software; you can redistribute it and/or modify
53 (define_cpu_unit "Xfpu_issue,Xfpu_addsub,Xfpu_mul,Xfpu_div,Xfpu_sqrt" "Xfpu") 53 (define_cpu_unit "Xfpu_issue,Xfpu_addsub,Xfpu_mul,Xfpu_div,Xfpu_sqrt" "Xfpu")
54 54
55 55
56 (define_insn_reservation "fp-default" 2 56 (define_insn_reservation "fp-default" 2
57 (and (and 57 (and (and
58 (eq_attr "type" "fp") 58 (eq_attr "type" "fp,fpsimple")
59 (eq_attr "fp_type" "fp_default")) 59 (eq_attr "fp_type" "fp_default"))
60 (eq_attr "cpu" "ppc405")) 60 (eq_attr "cpu" "ppc405"))
61 "Xfpu_issue*2") 61 "Xfpu_issue*2")
62 62
63 (define_insn_reservation "fp-compare" 6 63 (define_insn_reservation "fp-compare" 6
65 (eq_attr "cpu" "ppc405")) 65 (eq_attr "cpu" "ppc405"))
66 "Xfpu_issue*2,Xfpu_addsub") 66 "Xfpu_issue*2,Xfpu_addsub")
67 67
68 (define_insn_reservation "fp-addsub-s" 14 68 (define_insn_reservation "fp-addsub-s" 14
69 (and (and 69 (and (and
70 (eq_attr "type" "fp") 70 (eq_attr "type" "fp,fpsimple")
71 (eq_attr "fp_type" "fp_addsub_s")) 71 (eq_attr "fp_type" "fp_addsub_s"))
72 (eq_attr "cpu" "ppc405")) 72 (eq_attr "cpu" "ppc405"))
73 "Xfpu_issue*2,Xfpu_addsub") 73 "Xfpu_issue*2,Xfpu_addsub")
74 74
75 (define_insn_reservation "fp-addsub-d" 18 75 (define_insn_reservation "fp-addsub-d" 18
76 (and (and 76 (and (and
77 (eq_attr "type" "fp") 77 (eq_attr "type" "fp,fpsimple")
78 (eq_attr "fp_type" "fp_addsub_d")) 78 (eq_attr "fp_type" "fp_addsub_d"))
79 (eq_attr "cpu" "ppc405")) 79 (eq_attr "cpu" "ppc405"))
80 "Xfpu_issue*2,Xfpu_addsub") 80 "Xfpu_issue*2,Xfpu_addsub")
81 81
82 (define_insn_reservation "fp-mul-s" 12 82 (define_insn_reservation "fp-mul-s" 12
116 (eq_attr "fp_type" "fp_maddsub_d")) 116 (eq_attr "fp_type" "fp_maddsub_d"))
117 (eq_attr "cpu" "ppc405")) 117 (eq_attr "cpu" "ppc405"))
118 "Xfpu_issue*2,Xfpu_mul,nothing*7,Xfpu_addsub") 118 "Xfpu_issue*2,Xfpu_mul,nothing*7,Xfpu_addsub")
119 119
120 (define_insn_reservation "fp-load" 10 ;; FIXME. Is double/single precision the same ? 120 (define_insn_reservation "fp-load" 10 ;; FIXME. Is double/single precision the same ?
121 (and (eq_attr "type" "fpload, fpload_ux, fpload_u") 121 (and (eq_attr "type" "fpload")
122 (eq_attr "cpu" "ppc405")) 122 (eq_attr "cpu" "ppc405"))
123 "Xfpu_issue*10") 123 "Xfpu_issue*10")
124 124
125 (define_insn_reservation "fp-store" 4 125 (define_insn_reservation "fp-store" 4
126 (and (eq_attr "type" "fpstore, fpstore_ux, fpstore_u") 126 (and (eq_attr "type" "fpstore")
127 (eq_attr "cpu" "ppc405")) 127 (eq_attr "cpu" "ppc405"))
128 "Xfpu_issue*4") 128 "Xfpu_issue*4")
129 129
130 (define_insn_reservation "fp-sqrt-s" 24 ;; Actually 56 130 (define_insn_reservation "fp-sqrt-s" 24 ;; Actually 56
131 (and (eq_attr "type" "ssqrt") 131 (and (eq_attr "type" "ssqrt")