aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-11-22 17:11:27 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2003-11-22 16:11:27 +0000
commitcf2348cb34832645326d71c306ac25d12bec5e60 (patch)
tree9df700f9209c594ee17de6bccec1e05c2c157201
parentdd4c376388b556043897a092d6ec212418d7b685 (diff)
downloadgcc-cf2348cb34832645326d71c306ac25d12bec5e60.zip
gcc-cf2348cb34832645326d71c306ac25d12bec5e60.tar.gz
gcc-cf2348cb34832645326d71c306ac25d12bec5e60.tar.bz2
i386.c (classify_argument): Pass __float128 in memory.
* i386.c (classify_argument): Pass __float128 in memory. (ix86_return_in_memory): Likewise. (ix86_libcall_value): Likewsie. From-SVN: r73842
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c20
2 files changed, 9 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 968e627..3861484 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-11-22 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (classify_argument): Pass __float128 in memory.
+ (ix86_return_in_memory): Likewise.
+ (ix86_libcall_value): Likewsie.
+
2003-11-22 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (dosize): Convert to ISO-C.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 8060371..240e46a 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -2182,7 +2182,6 @@ classify_argument (enum machine_mode mode, tree type,
return 1;
case CDImode:
case TImode:
- case TCmode:
classes[0] = classes[1] = X86_64_INTEGER_CLASS;
return 2;
case CTImode:
@@ -2203,9 +2202,8 @@ classify_argument (enum machine_mode mode, tree type,
classes[1] = X86_64_X87UP_CLASS;
return 2;
case TFmode:
- classes[0] = X86_64_INTEGER_CLASS;
- classes[1] = X86_64_INTEGER_CLASS;
- return 2;
+ case TCmode:
+ return 0;
case XCmode:
classes[0] = X86_64_X87_CLASS;
classes[1] = X86_64_X87UP_CLASS;
@@ -2784,7 +2782,7 @@ ix86_return_in_memory (tree type)
}
}
- if (mode == TFmode || mode == XFmode)
+ if (mode == XFmode)
return 0;
if (size > 12)
@@ -2810,18 +2808,6 @@ ix86_libcall_value (enum machine_mode mode)
case XCmode:
return gen_rtx_REG (mode, FIRST_FLOAT_REG);
case TFmode:
- {
- rtx ret = gen_rtx_PARALLEL (mode, rtvec_alloc (2));
- XVECEXP (ret, 0, 0) = gen_rtx_EXPR_LIST
- (VOIDmode,
- gen_rtx_REG (DImode, x86_64_int_parameter_registers [0]),
- const0_rtx);
- XVECEXP (ret, 0, 1) = gen_rtx_EXPR_LIST
- (VOIDmode,
- gen_rtx_REG (DImode, x86_64_int_parameter_registers [1]),
- GEN_INT (64));
- return ret;
- }
case TCmode:
return NULL;
default: