Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/arm/exynos-m1.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 ;; Samsung Exynos M1 pipeline description | 1 ;; Samsung Exynos M1 pipeline description |
2 ;; Copyright (C) 2014-2018 Free Software Foundation, Inc. | 2 ;; Copyright (C) 2014-2020 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 by | 7 ;; under the terms of the GNU General Public License as published by |
415 (eq_attr "mul32" "yes")) | 415 (eq_attr "mul32" "yes")) |
416 "em1_c") | 416 "em1_c") |
417 | 417 |
418 (define_insn_reservation "exynos_m1_mlal" 4 | 418 (define_insn_reservation "exynos_m1_mlal" 4 |
419 (and (eq_attr "tune" "exynosm1") | 419 (and (eq_attr "tune" "exynosm1") |
420 (eq_attr "mul64" "yes")) | 420 (eq_attr "widen_mul64" "yes")) |
421 "em1_alu, em1_c") | 421 "em1_alu, em1_c") |
422 | 422 |
423 ;; Integer divide | 423 ;; Integer divide |
424 ;; TODO: assume the median latency; blocks other divisions | 424 ;; TODO: assume the median latency; blocks other divisions |
425 (define_insn_reservation "exynos_m1_div" 13 | 425 (define_insn_reservation "exynos_m1_div" 13 |
948 exynos_m1_crypto_poly*") | 948 exynos_m1_crypto_poly*") |
949 (define_bypass 5 "exynos_m1_crypto_complex" | 949 (define_bypass 5 "exynos_m1_crypto_complex" |
950 "exynos_m1_crypto_simple, exynos_m1_crypto_complex,\ | 950 "exynos_m1_crypto_simple, exynos_m1_crypto_complex,\ |
951 exynos_m1_crypto_poly*") | 951 exynos_m1_crypto_poly*") |
952 | 952 |
953 ;; AES{D,E}/AESMC pairs can feed each other instantly. | |
954 (define_bypass 0 "exynos_m1_crypto_simple" | |
955 "exynos_m1_crypto_simple" | |
956 "aarch_crypto_can_dual_issue") | |
957 | |
958 ;; Predicted branches take no time, but mispredicted ones take forever anyway. | 953 ;; Predicted branches take no time, but mispredicted ones take forever anyway. |
959 (define_bypass 1 "exynos_m1_*" | 954 (define_bypass 1 "exynos_m1_*" |
960 "exynos_m1_call, exynos_m1_branch") | 955 "exynos_m1_call, exynos_m1_branch") |