<div class="gmail_quote">On Wed, Nov 9, 2011 at 14:35, Dmitry Karpeev <span dir="ltr"><<a href="mailto:karpeev@mcs.anl.gov">karpeev@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Is the problem that we might be using more registers than might be necessary in a variadic function call?</blockquote></div><br><div>The problem is that it's:</div><div><br></div><div>1. not portable, we can't assume that ints are passed in pointer registers with the extra bits zeroed</div>
<div><br></div><div>2. will break on common platforms if we have many arguments. We already have examples that likely break on 64-bit Windows because my docs say that only 4 integer parameters are passed in registers. On Linux, 6 integer parameters are passed in registers, so we should be able to break it by adding one more component to src/dm/examples/tests/ex16.c and passing PETSC_NULL as the last argument to DMCompositeScatter (for example).</div>