1 dnl Copyright (C) 1997-2024 Free Software Foundation, Inc. 2 dnl 3 dnl This program is free software; you can redistribute it and/or modify 4 dnl it under the terms of the GNU General Public License as published by 5 dnl the Free Software Foundation; either version 3 of the License, or 6 dnl (at your option) any later version. 7 dnl 8 dnl This program is distributed in the hope that it will be useful, 9 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 10 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 dnl GNU General Public License for more details. 12 dnl 13 dnl You should have received a copy of the GNU General Public License 14 dnl along with this program. If not, see <http://www.gnu.org/licenses/>. 15 dnl 16 dnl --enable-sim-bitsize is for developers of the simulator 17 dnl It specifies the number of BITS in the target. 18 dnl arg[1] is the number of bits in a word 19 dnl arg[2] is the number assigned to the most significant bit 20 dnl arg[3] is the number of bits in an address 21 dnl arg[4] is the number of bits in an OpenFirmware cell. 22 dnl FIXME: this information should be obtained from bfd/archure 23 AC_DEFUN([SIM_AC_OPTION_BITSIZE], 24 wire_word_bitsize="[$1]" 25 wire_word_msb="[$2]" 26 wire_address_bitsize="[$3]" 27 wire_cell_bitsize="[$4]" 28 [AC_ARG_ENABLE(sim-bitsize, 29 [AS_HELP_STRING([--enable-sim-bitsize=N], [Specify target bitsize (32 or 64)])], 30 [sim_bitsize= 31 case "${enableval}" in 32 64,63 | 64,63,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63";; 33 32,31 | 32,31,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31";; 34 64,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";; 35 32,0 | 64,0,* ) sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0";; 36 32) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then 37 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=31" 38 else 39 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=32 -DWITH_TARGET_WORD_MSB=0" 40 fi ;; 41 64) if test x"$wire_word_msb" != x -a x"$wire_word_msb" != x0; then 42 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=63" 43 else 44 sim_bitsize="-DWITH_TARGET_WORD_BITSIZE=64 -DWITH_TARGET_WORD_MSB=0" 45 fi ;; 46 *) AC_MSG_ERROR("--enable-sim-bitsize was given $enableval. Expected 32 or 64") ;; 47 esac 48 # address bitsize 49 tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9]]*,*//"` 50 case x"${tmp}" in 51 x ) ;; 52 x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=32" ;; 53 x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_ADDRESS_BITSIZE=64" ;; 54 * ) AC_MSG_ERROR("--enable-sim-bitsize was given address size $enableval. Expected 32 or 64") ;; 55 esac 56 # cell bitsize 57 tmp=`echo "${enableval}" | sed -e "s/^[[0-9]]*,*[[0-9*]]*,*[[0-9]]*,*//"` 58 case x"${tmp}" in 59 x ) ;; 60 x32 | x32,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=32" ;; 61 x64 | x64,* ) sim_bitsize="${sim_bitsize} -DWITH_TARGET_CELL_BITSIZE=64" ;; 62 * ) AC_MSG_ERROR("--enable-sim-bitsize was given cell size $enableval. Expected 32 or 64") ;; 63 esac 64 if test x"$silent" != x"yes" && test x"$sim_bitsize" != x""; then 65 echo "Setting bitsize flags = $sim_bitsize" 6>&1 66 fi], 67 [sim_bitsize="" 68 if test x"$wire_word_bitsize" != x; then 69 sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_BITSIZE=$wire_word_bitsize" 70 fi 71 if test x"$wire_word_msb" != x; then 72 sim_bitsize="$sim_bitsize -DWITH_TARGET_WORD_MSB=$wire_word_msb" 73 fi 74 if test x"$wire_address_bitsize" != x; then 75 sim_bitsize="$sim_bitsize -DWITH_TARGET_ADDRESS_BITSIZE=$wire_address_bitsize" 76 fi 77 if test x"$wire_cell_bitsize" != x; then 78 sim_bitsize="$sim_bitsize -DWITH_TARGET_CELL_BITSIZE=$wire_cell_bitsize" 79 fi])dnl 80 ]) 81 AC_SUBST(sim_bitsize) 82