diff options
author | Richard Earnshaw <richard.earnshaw@arm.com> | 2002-02-19 19:20:31 +0000 |
---|---|---|
committer | Richard Earnshaw <richard.earnshaw@arm.com> | 2002-02-19 19:20:31 +0000 |
commit | 08216dd78d5f1a8976771db9ca7008126ccf3ece (patch) | |
tree | 0253edbebb9cb566b8b3d01048abc00bd110ab13 /gdb/arm-tdep.h | |
parent | 45b38a80ad9d75ed57daa8dfa569583ead481d03 (diff) | |
download | gdb-08216dd78d5f1a8976771db9ca7008126ccf3ece.zip gdb-08216dd78d5f1a8976771db9ca7008126ccf3ece.tar.gz gdb-08216dd78d5f1a8976771db9ca7008126ccf3ece.tar.bz2 |
* arm-tdep.h (enum arm_float_model): New enum.
(struct gdbarch_tdep): Add fp_model.
* arm-tdep.c (arm_gdbarch_init): Set fp_model in tdep. Defer setting
up floating-point conversions until we know the floating-point model
in use by the inferior. Don't complain about being unable to
determine the ABI of the inferior when we don't have one.
(arm_extract_return_value): Support different floating-point models.
(arm_store_return_value): Likewise.
* armnbsd-tdep.c (arm_netbsd_aout_init_abi): Set fp_model in tdep to
ARM_FLOAT_SOFT.
(arm_netbsd_elf_init_abi): Set fp_model to ARM_FLOAT_SOFT_VFP.
Diffstat (limited to 'gdb/arm-tdep.h')
-rw-r--r-- | gdb/arm-tdep.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h index 29c8bc9..a4c52dc 100644 --- a/gdb/arm-tdep.h +++ b/gdb/arm-tdep.h @@ -116,11 +116,29 @@ enum arm_abi ARM_ABI_INVALID /* Keep this last. */ }; +/* Type of floating-point code in use by inferior. There are really 3 models + that are traditionally supported (plus the endianness issue), but gcc can + 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. */ + +enum arm_float_model +{ + ARM_FLOAT_SOFT, + ARM_FLOAT_FPA, + ARM_FLOAT_SOFT_VFP, + ARM_FLOAT_VFP +}; + /* Target-dependent structure in gdbarch. */ struct gdbarch_tdep { enum arm_abi arm_abi; /* OS/ABI of inferior. */ const char *abi_name; /* Name of the above. */ + + enum arm_float_model fp_model; /* Floating point calling conventions. */ + CORE_ADDR lowest_pc; /* Lowest address at which instructions will appear. */ |