1 dnl Process this file with autoconf to produce a configure script.
2 sinclude(../common/aclocal.m4)
8 dnl Options available in this module
10 SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT)
11 SIM_AC_OPTION_HOSTENDIAN
12 SIM_AC_OPTION_WARNINGS
15 # Ensure a reasonable default simulator is constructed: (DEPRECATED)
18 mipstx19*-*-*) SIMCONF="-mips1 -mcpu=r1900 -mno-fp --warnings";;
21 mips64tx49*-*-*) SIMCONF="-mips3 --warnings -mcpu=r4900";;
23 # start-sanitize-r5900
24 mips64r59*-*-*) SIMCONF="-mips3 --warnings -mcpu=r5900";;
26 mips64vr4100-*-*) SIMCOMF="-mips0 -mcpu=r4100 -mgp64 --warnings" ;;
27 mips64*-*-*) SIMCONF="-mips0 --warnings";;
28 mips16*-*-*) SIMCONF="-mips0 --warnings";;
29 mips*-*-*) SIMCONF="-mips2 --warnings";;
30 *) SIMCONF="-mips0 --warnings";;
37 mipstx19*-*-*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";;
41 AC_SUBST(SIM_SUBTARGET)
46 # Select the byte order of the target
52 mipstx19*-*-*) default_endian=BIG_ENDIAN ;;
54 # start-sanitize-r5900
55 mips64r59*-*-*) mips_endian=LITTLE_ENDIAN ;;
57 mips64*-*-*) default_endian=BIG_ENDIAN ;;
58 mips16*-*-*) default_endian=BIG_ENDIAN ;;
59 mips*-*-*) default_endian=BIG_ENDIAN ;;
60 *) default_endian=BIG_ENDIAN ;;
62 SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian)
67 # Select the bitsize of the target
72 mipstx19*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
74 # start-sanitize-r5900
75 mips64r59*-*-*) mips_bitsize=64 ; mips_msb=63 ; mips_addr_bitsize=32;;
77 mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
78 mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
79 mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
80 *) mips_bitsize=64 ; mips_msb=63 ;;
82 SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize)
87 # Select the floating hardware support of the target
89 mips_fpu=HARDWARE_FLOATING_POINT
93 mipstx19*-*-*) mips_fpu=SOFT_FLOATING_POINT ;;
95 mipstx39*-*-*) mips_fpu=HARD_FLOATING_POINT
98 # start-sanitize-r5900
99 mips64r59*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;;
101 mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
102 mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
103 mips*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
104 *) mips_fpu=HARD_FLOATING_POINT ;;
106 SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize)
111 # Select the level of SMP support
114 # start-sanitize-r5900
115 mips64r59*-*-*) mips_smp=1 ;;
119 SIM_AC_OPTION_SMP($mips_smp)
124 # Select the IGEN architecture
127 sim_igen_machine="-M mipsIV"
128 sim_m16_machine="-M mips16"
129 sim_igen_filter="32,64,f"
132 # start-sanitize-tx19
133 mipstx19*-*-*) sim_default_gen=M16
135 sim_igen_machine="-M tx19"
136 sim_m16_machine="-M tx19"
141 mipstx39*-*-*) sim_default_gen=IGEN
143 sim_igen_filter="32,f"
144 sim_igen_machine="-M r3900"
146 # start-sanitize-r5900
147 mips64r59*-*-*) sim_default_gen=IGEN
149 sim_igen_machine="-M r5900"
152 # start-sanitize-vr4320
153 mips64vr4320-*-*) sim_default_gen=IGEN
155 sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=vr4320"
157 # end-sanitize-vr4320
158 mips64vr43*-*-*) sim_default_gen=IGEN
160 sim_igen_machine="-M mipsIV"
161 # start-sanitize-vr4320
162 sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=mipsIV"
163 # end-sanitize-vr4320
165 # start-sanitize-vr5400
166 mips64vr54*-*-*) sim_default_gen=IGEN
168 sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5400"
170 # end-sanitize-vr5400
171 mips64vr5*-*-*) sim_default_gen=IGEN
173 sim_igen_machine="-M vr5000"
174 # start-sanitize-vr5400
175 sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5000"
176 # end-sanitize-vr5400
178 mips64vr4100-*-*) echo "NOTE: mips64vr4100 still uses gencode"
180 sim_igen_machine="-M tx19"
181 sim_m16_machine="-M tx19"
182 sim_igen_filter = "32,64,f"
183 sim_m16_filter = "16"
187 mips64*-*-*) sim_default_gen=IGEN
188 sim_igen_filter="32,64,f"
191 mips16*-*-*) sim_default_gen=M16
192 sim_igen_filter="32,64,f"
196 mips*-*-*) sim_default_gen=IGEN
197 sim_igen_filter="32,f"
201 sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}"
202 sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}"
203 AC_SUBST(sim_igen_flags)
204 AC_SUBST(sim_m16_flags)
211 AC_ARG_ENABLE(sim-igen,
212 [ --enable-sim-igen=opts Enable IGEN simulator],
213 [case "${enableval}" in
214 yes) sim_gen="${sim_default_gen}";;
217 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-igen"); sim_gen="";;
219 if test x"$silent" != x"yes" && test x"$sim_gen" != x""; then
220 echo "Setting sim_igen = $sim_gen" 6>&1
221 fi],[sim_gen="${sim_use_gen}"])dnl
227 mips64r59*-sky-*) mips_extra_objs='$(SIM_SKY_OBJS)' ;
228 SIM_SUBTARGET="-DTARGET_SKY -DWITH_DEVICES=1 -DDEVICE_INIT=1";;
231 *) mips_extra_objs="" ;;
233 AC_SUBST(mips_extra_objs)
239 # Enable GPU2 library
240 AC_ARG_WITH(sim-gpu2,
241 [ --with-sim-gpu2=path Use GPU2 library under given directory],
242 [if test -d "${withval}"
244 SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_GPU2 -I${withval}/include"
245 mips_extra_libs="-L${withval}/lib -lgpu2 -L${x_libraries} -lX11"
247 AC_MSG_ERROR("Directory ${withval} does not exist.");
249 # Enable target accurate FP library
250 AC_ARG_WITH(sim-funit,
251 [ --with-sim-funit=path Use target FP library under given directory],
252 [if test -d "${withval}"
254 SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_FUNIT -I${withval}/include"
255 mips_extra_libs="${mips_extra_libs} -L${withval}/lib -lfunit"
257 AC_MSG_ERROR("Directory ${withval} does not exist.");
260 AC_SUBST(mips_extra_libs)
262 AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h)
263 AC_CHECK_LIB(m, fabs)
264 AC_CHECK_FUNCS(aint anint sqrt)