This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

function argument assigne to ARM register in assembly

Note: This was originally posted on 4th September 2009 at http://forums.arm.com

Hello,

I am developing application on OMAP3530-beagleboard using code sourcery tool chain.
I have used assembly function in my C application.Function has 5 argument it's called from another c function.
function like: void  routine(signed char *a, int b, signed char *c, unsigned char *d, unsigned int *e)
                        {
                           asm volatile{

                                             ........assembly syntaxs....

                            
                                    };
                        }
Here, function argument a to d are stored in r0 to r3 but argument e  either go to stack or store into r4 to r12  register as per called function ?
How can i write assembly syntax in my assembly function to get value of argument e in any specific register so I can use in my function correctly?
How can I write assembly syntax so assembly function parameter passing become independent of called function variable usage means I can use this routine function any other application without doing changed inside the assembly syntax to catch parameter value ?


Thanks,
Parents
  • Note: This was originally posted on 10th September 2009 at http://forums.arm.com

    Hello,
    I have checked disassembly of function which call my assembly routine function on QEMU simulator, as per that it's storing variable e value into stack.

    I have not checked code generated by the compiler for my assembly function. How to check the code generated by compiler for assembly function and C functions?

    how to check value passing in e argument is properly restored in r4 or not in assembly routine ?

    I am storing values into e variable address means r4 and routine has ARM NEON instructions.

    Thanks,
Reply
  • Note: This was originally posted on 10th September 2009 at http://forums.arm.com

    Hello,
    I have checked disassembly of function which call my assembly routine function on QEMU simulator, as per that it's storing variable e value into stack.

    I have not checked code generated by the compiler for my assembly function. How to check the code generated by compiler for assembly function and C functions?

    how to check value passing in e argument is properly restored in r4 or not in assembly routine ?

    I am storing values into e variable address means r4 and routine has ARM NEON instructions.

    Thanks,
Children
No data