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")