Re: GCC assmbler for powerpc-eabi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



marian <marian@xxxxxxxxxxxx> writes:

> 	crxor 6,6,6	<<<< WHY <<<<<<
> 	bl sprintf

The various PPC ABIs are unreasonably complicated.  The crxor
instruction is required by some of them.  It is used when calling a
function which takes a variable number of arguments.  crxor is used to
indicate that no floating point arguments were passed.  creqv is used to
indicate that at least one floating point argument was passed.  The
varargs function checks the condition register to see whether it has to
push the floating point parameter registers on the stack in order to let
va_arg work correctly.

Since most varargs functions do not have any floating point arguments,
it is usually a good tradeoff to have one exact instruction in the
caller to save several memory operations in the callee.

If you prefer a different tradeoff, you can fool with the -mcall-XXX
options.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux