This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB 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]

Re: [rfa?] Implement ppc32 SYSV {extract,store} return value


On Friday, October 10, 2003, at 01:32 PM, Andrew Cagney wrote:

The GCC shipped in 1.5 vs the one now in 1.6
$ gcc --version
2.95.3

So, which one was right? The 1.5 compiler or the 1.6 compiler?

Neither, but from memory 1.5 was slightly closer:


/* NetBSD is confused.  It appears that 1.5 was using the correct SVr4
   convention but, 1.6 switched to the below broken convention.  For
   the moment use the broken convention.  Ulgh!.  */

static int ppcnbsd_use_struct_convention (int gcc_p, struct type *value_type)
{ if ((TYPE_LENGTH (value_type) == 16 || TYPE_LENGTH (value_type) == 8)
&& TYPE_VECTOR (value_type))
return 0;


  return !(TYPE_LENGTH (value_type) == 1
           || TYPE_LENGTH (value_type) == 2
           || TYPE_LENGTH (value_type) == 4
           || TYPE_LENGTH (value_type) == 8);
}

however, then GCC was getting:


+         /* GCC screwed up.  The last register isn't "left" aligned.
+            Need to extract the least significant part of each
+            register and then store that.  */

wrong.

Andrew



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