summaryrefslogtreecommitdiff
path: root/gdb/arm-tdep.h
diff options
context:
space:
mode:
authorRichard Earnshaw <richard.earnshaw@arm.com>2003-03-22 20:39:21 +0000
committerRichard Earnshaw <richard.earnshaw@arm.com>2003-03-22 20:39:21 +0000
commit488358d5a967d43859d1d4b55d274798f0fb850c (patch)
tree768e8cd9346496b807e4d0aa6c762fccd528a14b /gdb/arm-tdep.h
parentcdec3ced71f533d7e8fa1aa6bc37aacf074614a7 (diff)
downloadgdb-488358d5a967d43859d1d4b55d274798f0fb850c.tar.gz
* arm-tdep.h (arm_float_model): Add AUTO and LAST values.
(arm_get_fp_model): Declare. * arm-tdep.c (fp_model_strings): New string array. (arm_fp_model, current_fp_model): New variables. (arm_get_fp_model): New function. (arm_set_fp): New function. (set_fp_model_sfunc): New function. (show_fp_model): New function. (_initialize_arm_tdep): Add new command to set/show the FPU. (arm_extract_return_value): Use arm_get_fp_model. (arm_store_return_value): Likewise. (arm_gdbarch_init): Default fpa model is softfpa. Call arm_set_fp to initialize the floating-point data types. * arm-linux-tdep.c (arm_linux_init_abi): The default floating point model is FPA.
Diffstat (limited to 'gdb/arm-tdep.h')
-rw-r--r--gdb/arm-tdep.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
index b8c4711838e..26f3a83a973 100644
--- a/gdb/arm-tdep.h
+++ b/gdb/arm-tdep.h
@@ -109,16 +109,24 @@ enum gdb_regnum {
only generate 2 of those. The third is APCS_FLOAT, where arguments to
functions are passed in floating-point registers.
- In addition to the traditional models, VFP adds two more. */
+ In addition to the traditional models, VFP adds two more.
+
+ If you update this enum, don't forget to update fp_model_strings in
+ arm-tdep.c. */
enum arm_float_model
{
- ARM_FLOAT_SOFT,
- ARM_FLOAT_FPA,
- ARM_FLOAT_SOFT_VFP,
- ARM_FLOAT_VFP
+ ARM_FLOAT_AUTO, /* Automatic detection. Do not set in tdep. */
+ ARM_FLOAT_SOFT_FPA, /* Traditional soft-float (mixed-endian on LE ARM). */
+ ARM_FLOAT_FPA, /* FPA co-processor. GCC calling convention. */
+ ARM_FLOAT_SOFT_VFP, /* Soft-float with pure-endian doubles. */
+ ARM_FLOAT_VFP, /* Full VFP calling convention. */
+ ARM_FLOAT_LAST /* Keep at end. */
};
+/* A method to the setting based on user's choice and ABI setting. */
+enum arm_float_model arm_get_fp_model (struct gdbarch *);
+
/* Target-dependent structure in gdbarch. */
struct gdbarch_tdep
{