PowerPC64 .branch_lt address
[binutils-gdb.git] / sim / common / genmloop.sh
index 449e034410b4357e650305ba77c547cc5df1fb83..1bbeb615b0566460c980c49b874f3589f9959b3a 100755 (executable)
@@ -1,5 +1,5 @@
 # Generate the main loop of the simulator.
-# Copyright (C) 1996-2019 Free Software Foundation, Inc.
+# Copyright (C) 1996-2022 Free Software Foundation, Inc.
 # Contributed by Cygnus Support.
 #
 # This file is part of the GNU simulators.
@@ -140,6 +140,7 @@ switch=
 cpu="unknown"
 infile=""
 prefix="unknown"
+outprefix=""
 outsuffix=""
 
 while test $# -gt 0
@@ -154,6 +155,7 @@ do
        -scache) scache=yes ;;
        -pbb) pbb=yes ;;
        -no-parallel) ;;
+       -outfile-prefix) shift ; outprefix=$1 ;;
        -outfile-suffix) shift ; outsuffix=$1 ;;
        -parallel-read) parallel=read ;;
        -parallel-write) parallel=write ;;
@@ -197,8 +199,8 @@ PREFIX=`echo ${prefix} | tr "${lowercase}" "${uppercase}"`
 
 ##########################################################################
 
-rm -f eng${outsuffix}.hin
-exec 1>eng${outsuffix}.hin
+rm -f ${outprefix}eng${outsuffix}.hin
+exec 1>${outprefix}eng${outsuffix}.hin
 
 echo "/* engine configuration for ${cpu} */"
 echo ""
@@ -291,8 +293,8 @@ fi
 
 ##########################################################################
 
-rm -f tmp-mloop-$$.cin mloop${outsuffix}.cin
-exec 1>tmp-mloop-$$.cin
+rm -f ${outprefix}tmp-mloop-$$.cin ${outprefix}mloop${outsuffix}.cin
+exec 1>${outprefix}tmp-mloop-$$.cin
 
 # We use @cpu@ instead of ${cpu} because we still need to run sed to handle
 # transformation of @cpu@ for mainloop.in, so there's no need to use ${cpu}
@@ -301,14 +303,19 @@ exec 1>tmp-mloop-$$.cin
 cat << EOF
 /* This file is generated by the genmloop script.  DO NOT EDIT! */
 
+/* This must come before any other includes.  */
+#include "defs.h"
+
 /* Enable switch() support in cgen headers.  */
 #define SEM_IN_SWITCH
 
 #define WANT_CPU @cpu@
 #define WANT_CPU_@CPU@
 
-#include "sim-main.h"
+#include "ansidecl.h"
 #include "bfd.h"
+
+#include "sim-main.h"
 #include "cgen-mem.h"
 #include "cgen-ops.h"
 #include "sim-assert.h"
@@ -344,7 +351,7 @@ static INLINE void
    This is as opposed to x-after which is only emitted at the end of a group
    of parallel insns.  */
 
-static INLINE void
+ATTRIBUTE_UNUSED static INLINE void
 @prefix@_emit_before (SIM_CPU *current_cpu, SCACHE *sc, PCADDR pc, int first_p)
 {
   ARGBUF *abuf = &sc[0].argbuf;
@@ -359,7 +366,7 @@ static INLINE void
    x-after is emitted after a serial insn or at the end of a group of
    parallel insns.  */
 
-static INLINE void
+ATTRIBUTE_UNUSED static INLINE void
 @prefix@_emit_after (SIM_CPU *current_cpu, SCACHE *sc, PCADDR pc)
 {
   ARGBUF *abuf = &sc[0].argbuf;
@@ -1331,8 +1338,9 @@ fi # -pbb
 # Expand @..@ macros appearing in tmp-mloop-{pid}.cin.
 sed \
   -e "s/@cpu@/$cpu/g" -e "s/@CPU@/$CPU/g" \
-  -e "s/@prefix@/$prefix/g" -e "s/@PREFIX@/$PREFIX/g" < tmp-mloop-$$.cin > mloop${outsuffix}.cin
+  -e "s/@prefix@/$prefix/g" -e "s/@PREFIX@/$PREFIX/g" \
+  < ${outprefix}tmp-mloop-$$.cin > ${outprefix}mloop${outsuffix}.cin
 rc=$?
-rm -f tmp-mloop-$$.cin
+rm -f ${outprefix}tmp-mloop-$$.cin
 
 exit $rc