X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fmips%2Fconfigure.in;h=977255380774f7f68455c2df17eb72b427a72ab5;hb=69d5a56645fdfd5d9cc9f57986224b0636010161;hp=4ab0f0b913695724908403ea27b9398da71f0ceb;hpb=18c64df6134433d28c6cfffc7d78afeacc79c69e;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/mips/configure.in b/sim/mips/configure.in index 4ab0f0b913..9772553807 100644 --- a/sim/mips/configure.in +++ b/sim/mips/configure.in @@ -12,14 +12,18 @@ SIM_AC_OPTION_HOSTENDIAN SIM_AC_OPTION_WARNINGS -# Ensure a reasonable default simulator is constructed: +# Ensure a reasonable default simulator is constructed: (DEPRECATED) case "${target}" in # start-sanitize-tx19 mipstx19*-*-*) SIMCONF="-mips1 -mcpu=r1900 -mno-fp --warnings";; # end-sanitize-tx19 +# start-sanitize-tx49 + mips64tx49*-*-*) SIMCONF="-mips3 --warnings -mcpu=r4900";; +# end-sanitize-tx49 # start-sanitize-r5900 mips64r59*-*-*) SIMCONF="-mips3 --warnings -mcpu=r5900";; # end-sanitize-r5900 + mips64vr4100-*-*) SIMCOMF="-mips0 -mcpu=r4100 -mgp64 --warnings" ;; mips64*-*-*) SIMCONF="-mips0 --warnings";; mips16*-*-*) SIMCONF="-mips0 --warnings";; mips*-*-*) SIMCONF="-mips2 --warnings";; @@ -27,6 +31,7 @@ case "${target}" in esac AC_SUBST(SIMCONF) +# DEPRECATED case "${target}" in # start-sanitize-tx19 mipstx19*-*-*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";; @@ -36,60 +41,214 @@ esac AC_SUBST(SIM_SUBTARGET) + # # Select the byte order of the target # +mips_endian= +default_endian= case "${target}" in # start-sanitize-tx19 - mipstx19*-*-*) mips_endian=0 ;; + mipstx19*-*-*) default_endian=BIG_ENDIAN ;; # end-sanitize-tx19 # start-sanitize-r5900 mips64r59*-*-*) mips_endian=LITTLE_ENDIAN ;; # end-sanitize-r5900 - mips64*-*-*) mips_endian=0 ;; - mips16*-*-*) mips_endian=0 ;; - mips*-*-*) mips_endian=0 ;; - *) mips_endian=0 ;; + mips64*-*-*) default_endian=BIG_ENDIAN ;; + mips16*-*-*) default_endian=BIG_ENDIAN ;; + mips*-*-*) default_endian=BIG_ENDIAN ;; + *) default_endian=BIG_ENDIAN ;; esac -SIM_AC_OPTION_ENDIAN($mips_endian) +SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian) + # # Select the bitsize of the target # +mips_addr_bitsize= case "${target}" in # start-sanitize-tx19 mipstx19*-*-*) mips_bitsize=32 ; mips_msb=31 ;; # end-sanitize-tx19 # start-sanitize-r5900 - mips64r59*-*-*) mips_bitsize=64 ; mips_msb=63 ;; + mips64r59*-*-*) mips_bitsize=64 ; mips_msb=63 ; mips_addr_bitsize=32;; # end-sanitize-r5900 mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;; mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;; mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;; *) mips_bitsize=64 ; mips_msb=63 ;; esac -SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb) +SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize) + # # Select the floating hardware support of the target # mips_fpu=HARDWARE_FLOATING_POINT +mips_fpu_bitsize= case "${target}" in # start-sanitize-tx19 mipstx19*-*-*) mips_fpu=SOFT_FLOATING_POINT ;; # end-sanitize-tx19 + mipstx39*-*-*) mips_fpu=HARD_FLOATING_POINT + mips_fpu_bitsize=32 + ;; # start-sanitize-r5900 - mips64r59*-*-*) mips_fpu=HARD_FLOATING_POINT ;; + mips64r59*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;; # end-sanitize-r5900 mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;; mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;; mips*-*-*) mips_fpu=HARD_FLOATING_POINT ;; *) mips_fpu=HARD_FLOATING_POINT ;; esac -SIM_AC_OPTION_FLOAT($mips_fpu) +SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize) + + + +# +# Select the level of SMP support +# +case "${target}" in +# start-sanitize-r5900 + mips64r59*-*-*) mips_smp=1 ;; +# end-sanitize-r5900 + *) mips_smp=0 ;; +esac +SIM_AC_OPTION_SMP($mips_smp) + + + +# +# Select the IGEN architecture +# +sim_use_gen=IGEN +sim_igen_machine="-M mipsIV" +sim_m16_machine="-M mips16" +sim_igen_filter="32,64,f" +sim_m16_filter="16" +case "${target}" in +# start-sanitize-tx19 + mipstx19*-*-*) sim_default_gen=M16 + #sim_use_gen=M16 + sim_use_gen=NO + sim_igen_machine="-M tx19" + sim_m16_machine="-M tx19" + sim_igen_filter="32" + sim_m16_filter="16" + ;; +# end-sanitize-tx19 + mipstx39*-*-*) sim_default_gen=IGEN + sim_use_gen=IGEN + sim_igen_filter="32,f" + sim_igen_machine="-M r3900" + ;; +# start-sanitize-r5900 + mips64r59*-*-*) sim_default_gen=IGEN + sim_use_gen=IGEN + sim_igen_machine="-M r5900" + ;; +# end-sanitize-r5900 +# start-sanitize-vr4320 + mips64vr4320-*-*) sim_default_gen=IGEN + sim_use_gen=IGEN + sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=vr4320" + ;; +# end-sanitize-vr4320 + mips64vr43*-*-*) sim_default_gen=IGEN + sim_use_gen=IGEN + sim_igen_machine="-M mipsIV" +# start-sanitize-vr4320 + sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=mipsIV" +# end-sanitize-vr4320 + ;; +# start-sanitize-vr5400 + mips64vr54*-*-*) sim_default_gen=IGEN + sim_use_gen=IGEN + sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5400" + ;; +# end-sanitize-vr5400 + mips64vr5*-*-*) sim_default_gen=IGEN + sim_use_gen=IGEN + sim_igen_machine="-M vr5000" +# start-sanitize-vr5400 + sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5000" +# end-sanitize-vr5400 + ;; +mips64vr4100-*-*) echo "NOTE: mips64vr4100 still uses gencode" + sim_default_gen=M16 + sim_igen_machine="-M tx19" + sim_m16_machine="-M tx19" + sim_igen_filter = "32,64,f" + sim_m16_filter = "16" + sim_use_gen=NO + ;; + + mips64*-*-*) sim_default_gen=IGEN + sim_igen_filter="32,64,f" + sim_use_gen=IGEN + ;; + mips16*-*-*) sim_default_gen=M16 + sim_igen_filter="32,64,f" + sim_m16_filter="16" + sim_use_igen=NO + ;; + mips*-*-*) sim_default_gen=IGEN + sim_igen_filter="32,f" + sim_use_gen=IGEN + ;; +esac +sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}" +sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}" +AC_SUBST(sim_igen_flags) +AC_SUBST(sim_m16_flags) + + + +# +# Enable igen +# +AC_ARG_ENABLE(sim-igen, +[ --enable-sim-igen=opts Enable IGEN simulator], +[case "${enableval}" in + yes) sim_gen="${sim_default_gen}";; + no) sim_gen=NO;; + 16) sim_gen=M16;; + *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-igen"); sim_gen="";; +esac +if test x"$silent" != x"yes" && test x"$sim_gen" != x""; then + echo "Setting sim_igen = $sim_gen" 6>&1 +fi],[sim_gen="${sim_use_gen}"])dnl +AC_SUBST(sim_gen) + + +case "${target}" in +# start-sanitize-sky + mips64r59*-sky-*) mips_extra_objs='$(SIM_SKY_OBJS)' ; + SIM_SUBTARGET="-DTARGET_SKY -DWITH_DEVICES=1 -DDEVICE_INIT=1";; + +# end-sanitize-sky + *) mips_extra_objs="" ;; +esac +AC_SUBST(mips_extra_objs) + +AC_PATH_X +mips_extra_libs="" +# start-sanitize-sky +# Enable GPU2 library +AC_ARG_WITH(sim-gpu2, +[ --with-sim-gpu2=path Use GPU2 library under given directory], +[if test -d "${withval}" +then + SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_GPU2 -I${withval}/include" + mips_extra_libs="-L${withval}/lib -lgpu2 -L${x_libraries} -lX11" +else + AC_MSG_ERROR("Directory ${withval} does not exist."); +fi])dnl +# end-sanitize-sky +AC_SUBST(mips_extra_libs) AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h) AC_CHECK_LIB(m, fabs)