Mercurial > hg > CbC > CbC_gcc
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") |