[M3devel] Latest parse.c

Jay jayk123 at hotmail.com
Mon Feb 4 23:25:52 CET 2008


I'll try later. I tried stepping through some of this in gdb but couldn't make much sense of the data. Perhaps due to optimization. And I read some of it, but didn't really notice what you point out, thanks. I need to be more willing to resort to printf debugging..it worked well with those aligned doubles..
It should help (any of us) to use that small repro I provided.
 
I don't think it "quits" for us, but worth the printf'ing and such.
It does append "@4" to Sleep.
Another thing would be try:
like Sleep(int,record,int,record);
I wouldn't be surprised if you get @16, but I'm placing no bets here. :)
 
I should also try building some cross m3cg's so I can nag you to do the same. :)
(if it only it were that easy, also need cross gcc, ld, headers, libs, and then could build all distributions from one machine, albeit NT386 is the real laggard here...)
 
 - Jay



> CC: m3devel at elegosoft.com> From: hosking at cs.purdue.edu> Subject: Latest parse.c> Date: Mon, 4 Feb 2008 17:14:16 -0500> To: jayk123 at hotmail.com> > See this snip from gcc/gcc/config/winnt.c:> > > formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl));> > if (formal_type != NULL_TREE)> > {> > /* These attributes are ignored for variadic functions in> > i386.c:ix86_return_pops_args. For compatibility with MS> > compiler do not add @0 suffix here. */> > if (TREE_VALUE (tree_last (formal_type)) != void_type_node)> > return DECL_ASSEMBLER_NAME (decl);> > We need a void_type_node there -- void_list_node now captures that > properly.> > > /* Quit if we hit an incomplete type. Error is reported> > by convert_arguments in c-typeck.c or cp/typeck.c. */> > I wonder if the remaining problem with the wrong @N value is because > we don't have a complete type on the formals?> > > while (TREE_VALUE (formal_type) != void_type_node> > && COMPLETE_TYPE_P (TREE_VALUE (formal_type))) > > {> > int parm_size> > = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type)));> > /* Must round up to include padding. This is done the same> > way as in store_one_arg. */> > parm_size = ((parm_size + PARM_BOUNDARY - 1)> > / PARM_BOUNDARY * PARM_BOUNDARY);> > total += parm_size;> > formal_type = TREE_CHAIN (formal_type);\> > }> > }> > 
_________________________________________________________________
Climb to the top of the charts! Play the word scramble challenge with star power.
http://club.live.com/star_shuffle.aspx?icid=starshuffle_wlmailtextlink_jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080204/04c3b4cf/attachment-0002.html>


More information about the M3devel mailing list