1 # General rules that all rs6000/ targets must have.
3 # Copyright (C) 1995-2024 Free Software Foundation, Inc.
5 # This file is part of GCC.
7 # GCC is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3, or (at your option)
12 # GCC is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with GCC; see the file COPYING3. If not see
19 # <http://www.gnu.org/licenses/>.
21 TM_H += $(srcdir)/config/rs6000/rs6000-cpus.def
22 TM_H += $(srcdir)/config/rs6000/rs6000-modes.h
23 PASSES_EXTRA += $(srcdir)/config/rs6000/rs6000-passes.def
24 EXTRA_GTYPE_DEPS += rs6000-builtins.h
26 rs6000-pcrel-opt.o: $(srcdir)/config/rs6000/rs6000-pcrel-opt.cc
30 rs6000-string.o: $(srcdir)/config/rs6000/rs6000-string.cc
34 rs6000-p8swap.o: $(srcdir)/config/rs6000/rs6000-p8swap.cc
38 rs6000-d.o: $(srcdir)/config/rs6000/rs6000-d.cc
42 rs6000-logue.o: $(srcdir)/config/rs6000/rs6000-logue.cc
46 rs6000-builtin.o: $(srcdir)/config/rs6000/rs6000-builtin.cc
50 build/rs6000-gen-builtins.o: $(srcdir)/config/rs6000/rs6000-gen-builtins.cc
51 build/rbtree.o: $(srcdir)/config/rs6000/rbtree.cc
53 build/rs6000-gen-builtins$(build_exeext): build/rs6000-gen-builtins.o \
54 build/rbtree.o $(BUILD_LIBDEPS)
55 $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \
56 $(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS)
58 # TODO: Whenever GNU make 4.3 is the minimum required, we should use
59 # grouped targets on this:
60 # rs6000-builtins.cc rs6000-builtins.h rs6000-vecdefines.h &: <deps>
62 # For now, the header files depend on rs6000-builtins.cc, which avoids
63 # races because the .c file is closed last in rs6000-gen-builtins.cc.
64 rs6000-builtins.cc: build/rs6000-gen-builtins$(build_exeext) \
65 $(srcdir)/config/rs6000/rs6000-builtins.def \
66 $(srcdir)/config/rs6000/rs6000-overload.def
67 $(RUN_GEN) ./build/rs6000-gen-builtins$(build_exeext) \
68 $(srcdir)/config/rs6000/rs6000-builtins.def \
69 $(srcdir)/config/rs6000/rs6000-overload.def rs6000-builtins.h \
70 rs6000-builtins.cc rs6000-vecdefines.h
72 rs6000-builtins.h: rs6000-builtins.cc
74 rs6000.o: rs6000-builtins.h
76 EXTRA_HEADERS += rs6000-vecdefines.h
77 rs6000-vecdefines.h: rs6000-builtins.cc
79 rs6000-builtins.o: rs6000-builtins.cc
83 rs6000-call.o: $(srcdir)/config/rs6000/rs6000-call.cc rs6000-builtins.h
87 rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.cc rs6000-builtins.h
91 #$(srcdir)/config/rs6000/fusion.md: $(srcdir)/config/rs6000/genfusion.pl
92 # $(srcdir)/config/rs6000/genfusion.pl > $(srcdir)/config/rs6000/fusion.md
94 $(srcdir)/config/rs6000/rs6000-tables.opt: $(srcdir)/config/rs6000/genopt.sh \
95 $(srcdir)/config/rs6000/rs6000-cpus.def
96 $(SHELL) $(srcdir)/config/rs6000/genopt.sh $(srcdir)/config/rs6000 > \
97 $(srcdir)/config/rs6000/rs6000-tables.opt
99 # The rs6000 backend doesn't cause warnings in these files.
100 insn-conditions.o-warn =
102 MD_INCLUDES = $(srcdir)/config/rs6000/rs64.md \
103 $(srcdir)/config/rs6000/mpc.md \
104 $(srcdir)/config/rs6000/40x.md \
105 $(srcdir)/config/rs6000/440.md \
106 $(srcdir)/config/rs6000/601.md \
107 $(srcdir)/config/rs6000/603.md \
108 $(srcdir)/config/rs6000/6xx.md \
109 $(srcdir)/config/rs6000/7xx.md \
110 $(srcdir)/config/rs6000/7450.md \
111 $(srcdir)/config/rs6000/8540.md \
112 $(srcdir)/config/rs6000/e300c2c3.md \
113 $(srcdir)/config/rs6000/e500mc.md \
114 $(srcdir)/config/rs6000/power4.md \
115 $(srcdir)/config/rs6000/power5.md \
116 $(srcdir)/config/rs6000/power6.md \
117 $(srcdir)/config/rs6000/power7.md \
118 $(srcdir)/config/rs6000/power8.md \
119 $(srcdir)/config/rs6000/power9.md \
120 $(srcdir)/config/rs6000/power10.md \
121 $(srcdir)/config/rs6000/cell.md \
122 $(srcdir)/config/rs6000/a2.md \
123 $(srcdir)/config/rs6000/predicates.md \
124 $(srcdir)/config/rs6000/constraints.md \
125 $(srcdir)/config/rs6000/darwin.md \
126 $(srcdir)/config/rs6000/sync.md \
127 $(srcdir)/config/rs6000/vector.md \
128 $(srcdir)/config/rs6000/vsx.md \
129 $(srcdir)/config/rs6000/altivec.md \
130 $(srcdir)/config/rs6000/mma.md \
131 $(srcdir)/config/rs6000/crypto.md \
132 $(srcdir)/config/rs6000/htm.md \
133 $(srcdir)/config/rs6000/dfp.md \
134 $(srcdir)/config/rs6000/fusion.md \
135 $(srcdir)/config/rs6000/pcrel-opt.md