aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386-tdep.c
diff options
context:
space:
mode:
authorThiago Jung Bauermann <bauerman@br.ibm.com>2008-02-26 22:23:45 +0000
committerThiago Jung Bauermann <bauerman@br.ibm.com>2008-02-26 22:23:45 +0000
commit5daa78cc6fc04e0367c11459bb2ae0531c8732ac (patch)
tree7279defc1368bb1ab66bb3f7888c3dd0a833c27e /gdb/i386-tdep.c
parentcd72c291808dbf72aad1603f3c60cd72de62c8f8 (diff)
downloadgdb-5daa78cc6fc04e0367c11459bb2ae0531c8732ac.zip
gdb-5daa78cc6fc04e0367c11459bb2ae0531c8732ac.tar.gz
gdb-5daa78cc6fc04e0367c11459bb2ae0531c8732ac.tar.bz2
* amd64-tdep.c (amd64_classify): Add support for decimal float
types. * i386-tdep.c (i386_return_value): Make 128-bit decimal float use the struct return convention.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r--gdb/i386-tdep.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 83ae9d1..dc1202e 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1579,10 +1579,12 @@ i386_return_value (struct gdbarch *gdbarch, struct type *type,
{
enum type_code code = TYPE_CODE (type);
- if ((code == TYPE_CODE_STRUCT
- || code == TYPE_CODE_UNION
- || code == TYPE_CODE_ARRAY)
- && !i386_reg_struct_return_p (gdbarch, type))
+ if (((code == TYPE_CODE_STRUCT
+ || code == TYPE_CODE_UNION
+ || code == TYPE_CODE_ARRAY)
+ && !i386_reg_struct_return_p (gdbarch, type))
+ /* 128-bit decimal float uses the struct return convention. */
+ || (code == TYPE_CODE_DECFLOAT && TYPE_LENGTH (type) == 16))
{
/* The System V ABI says that: