On Wed, Dec 16, 2009 at 08:29:25PM -0800, Matt Helsley wrote:
> On Fri, Dec 04, 2009 at 11:02:28PM -0600, Nathan Lynch wrote:

<snip>

> >     /* Set up arguments for system call. */
> > -   mr      r3,r5   /* flags */
> > -   mr      r4,r7   /* clone_args */
> > -   mr      r5,r8   /* clone_args' size */
> > -   mr      r6,r9   /* pids */
> > +   mr      r3,r4   /* flags */
> > +   mr      r4,r6   /* clone_args */
> > +   mr      r5,r7   /* clone_args' size */
> > +   mr      r6,r8   /* pids */
> 
> Wouldn't it be possible to avoid some mr instructions above by re-arranging

(The 4 immediately above)

> the function arguments? Then you're just saving things in the two non-volatile
> gprs before making the eclone syscall. I think this amounts to making the
> prototype:
>
> int [r3] eclone(int flags [r3],
>               struct clone_args *args [r4],
>               size_t args_size [r6],
>               pid_t *pids [r7],
>               int (*fn)(void *arg) [r8],
>               void *fn_arg [r9]);

Argh, should've been:

int [r3] __eclone(int flags [r3],
              struct clone_args *args [r4],
              size_t args_size [r5],
              pid_t *pids [r6],
              int (*fn)(void *arg) [r7],
              void *fn_arg [r8]);

Cheers,
        -Matt
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to