aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/std-config.h
diff options
context:
space:
mode:
authorMichael Meissner <gnu@the-meissners.org>1995-11-08 18:57:06 +0000
committerMichael Meissner <gnu@the-meissners.org>1995-11-08 18:57:06 +0000
commit73c4941b23b9c660bb9bc4bb7acf3ea253356c41 (patch)
treeda13e65308de8337364ccbc1dde964aa60b93609 /sim/ppc/std-config.h
parent0634a431423265b525681625d2796346428c53b0 (diff)
downloadgdb-73c4941b23b9c660bb9bc4bb7acf3ea253356c41.zip
gdb-73c4941b23b9c660bb9bc4bb7acf3ea253356c41.tar.gz
gdb-73c4941b23b9c660bb9bc4bb7acf3ea253356c41.tar.bz2
first stage in function unit support; add new switches & latest code from andrew
Diffstat (limited to 'sim/ppc/std-config.h')
-rw-r--r--sim/ppc/std-config.h54
1 files changed, 51 insertions, 3 deletions
diff --git a/sim/ppc/std-config.h b/sim/ppc/std-config.h
index 69359f4..ace2888 100644
--- a/sim/ppc/std-config.h
+++ b/sim/ppc/std-config.h
@@ -246,6 +246,41 @@ extern int current_floating_point;
#endif
+/* Include code that simulates function units to model particular
+ machines more closely and provide more detailed information about
+ optimization potential. */
+
+#ifndef WITH_FUNCTION_UNIT
+#define WITH_FUNCTION_UNIT 1
+#endif
+
+/* Which specific processor to model */
+typedef enum _ppc_model {
+ PPC_MODEL_UNKNOWN,
+ PPC_MODEL_601,
+ PPC_MODEL_602,
+ PPC_MODEL_603,
+ PPC_MODEL_603e,
+ PPC_MODEL_604,
+ PPC_MODEL_403,
+ PPC_MODEL_505,
+ PPC_MODEL_821,
+ PPC_MODEL_860
+} ppc_model;
+
+#ifndef WITH_DEFAULT_PPC_MODEL
+#define WITH_DEFAULT_PPC_MODEL PPC_MODEL_603e
+#endif
+
+extern ppc_model current_ppc_model;
+
+#ifndef WITH_PPC_MODEL
+#define WITH_PPC_MODEL 0
+#endif
+
+#define CURRENT_PPC_MODEL (WITH_PPC_MODEL \
+ ? WITH_PPC_MODEL \
+ : current_ppc_model)
/* INLINE CODE SELECTION:
@@ -309,11 +344,18 @@ extern int current_floating_point;
#endif
/* Code that converts between hosts and target byte order. Used on
- every memory access (instruction and data). (See ppc-endian.h for
+ every memory access (instruction and data). (See sim-endian.h for
additional byte swapping configuration information) */
-#ifndef ENDIAN_INLINE
-#define ENDIAN_INLINE DEFAULT_INLINE
+#ifndef SIM_ENDIAN_INLINE
+#define SIM_ENDIAN_INLINE DEFAULT_INLINE
+#endif
+
+/* Low level bit manipulation routines used to work around a compiler
+ bug in 2.6.3. */
+
+#ifndef BITS_INLINE
+#define BITS_INLINE DEFAULT_INLINE
#endif
/* Code that gives access to various CPU internals such as registers.
@@ -412,4 +454,10 @@ extern int current_floating_point;
#define IDECODE_INLINE DEFAULT_INLINE
#endif
+/* Code to simule functional units of real machines */
+
+#ifndef FUNCTION_UNIT_INLINE
+#define FUNCTION_UNIT_INLINE DEFAULT_INLINE
+#endif
+
#endif /* _CONFIG_H */