This is the mail archive of the gcc@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]

RE: Building mips cross compiler on mingw


----Original Message----
>From: Dave Korn
>Sent: 20 July 2005 11:56

  Couple of minor corrections:

>
>
    HOST_WIDE_INT tsize = cfun->machine->frame.total_size;
>
>   if (!flag_inhibit_size_directive)
>     {
>       /* .frame FRAMEREG, FRAMESIZE, RETREG */
>       fprintf (file,
> 	       "\t.frame\t%s," HOST_WIDE_INT_PRINT_DEC ",%s\t\t"
> 	       "# vars= " HOST_WIDE_INT_PRINT_DEC ", regs= %d/%d"
> 	       ", args= " HOST_WIDE_INT_PRINT_DEC
> 	       ", gp= " HOST_WIDE_INT_PRINT_DEC "\n",
> 	       (reg_names[(frame_pointer_needed)
> 			  ? HARD_FRAME_POINTER_REGNUM :
> STACK_POINTER_REGNUM]),
> 	       ((frame_pointer_needed && TARGET_MIPS16)
> 		? tsize - cfun->machine->frame.args_size
> 		: tsize),
> 	       reg_names[GP_REG_FIRST + 31],
> 	       cfun->machine->frame.var_size,
> 	       cfun->machine->frame.num_gp,
> 	       cfun->machine->frame.num_fp,
> 	       cfun->machine->frame.args_size,
> 	       cfun->machine->frame.cprestore_size);
> 
>   Hmm.  Perhaps we have HOST_WIDE_INT problems for mingw host here?  If

 ...  either HOST_WIDE_INT or ...

> cfun->machine->frame.var_size was a long long, and HOST_WIDE_INT_PRINT_DEC
> for mingw is just "%d" or "%ld" rather than "%lld", that would push an
> extra NULL word onto the stack that would be taken as the parameter for
> %s because the "%d" wouldn't be advancing the varargs pointer past the
> whole of the second format arg...


  Ooops, slight braino there.  I meant the second argument involving
cfun->machine->frame.args_size may be pushing reg_names[GP_REG_FIRST + 31]
along.  You could verify that was happening by running cc1 under gdb,
setting a breakpoint here, and checking that reg_names[GP_REG_FIRST + 31]
isn't actually NULL.  You may also be able to workaround the bug with
-finhibit-size-directive.


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


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