This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commited] x86-64 __float128 calling convention fix


? config/i386/libgccalias.c
? config/i386/q
? config/i386/t.c
Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ChangeLog,v
retrieving revision 2.1812
diff -c -3 -p -r2.1812 ChangeLog
*** ChangeLog	22 Nov 2003 15:51:44 -0000	2.1812
--- ChangeLog	22 Nov 2003 16:10:58 -0000
***************
*** 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.
Index: config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.619
diff -c -3 -p -r1.619 i386.c
*** config/i386/i386.c	19 Nov 2003 07:59:08 -0000	1.619
--- config/i386/i386.c	22 Nov 2003 16:10:59 -0000
*************** classify_argument (enum machine_mode mod
*** 2182,2188 ****
        return 1;
      case CDImode:
      case TImode:
-     case TCmode:
        classes[0] = classes[1] = X86_64_INTEGER_CLASS;
        return 2;
      case CTImode:
--- 2182,2187 ----
*************** classify_argument (enum machine_mode mod
*** 2203,2211 ****
        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 XCmode:
        classes[0] = X86_64_X87_CLASS;
        classes[1] = X86_64_X87UP_CLASS;
--- 2202,2209 ----
        classes[1] = X86_64_X87UP_CLASS;
        return 2;
      case TFmode:
!     case TCmode:
!       return 0;
      case XCmode:
        classes[0] = X86_64_X87_CLASS;
        classes[1] = X86_64_X87UP_CLASS;
*************** ix86_return_in_memory (tree type)
*** 2784,2790 ****
  	}
      }
  
!   if (mode == TFmode || mode == XFmode)
      return 0;
  
    if (size > 12)
--- 2782,2788 ----
  	}
      }
  
!   if (mode == XFmode)
      return 0;
  
    if (size > 12)
*************** ix86_libcall_value (enum machine_mode mo
*** 2810,2827 ****
  	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:
--- 2808,2813 ----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]