code warrior disassemble code question

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

code warrior disassemble code question

Jump to solution
966 Views
lvyang
Contributor III

code warrior IDE(5.9.0)

MCU:SPC560P34

e_stwu   rsp,-32(rsp)

 

I find this code on every function disassemble code first line.

who can tell me what's the meaning or reference doc?

Thanks.

Labels (1)
0 Kudos
1 Solution
764 Views
martin_kovar
NXP Employee
NXP Employee

Hi,

this instruction allocates stack for the function. At the end of the function, there is something like se_addi r1,0x20 which returns stack pointer to the previous position (before function was called).

Regards,

Martin

View solution in original post

0 Kudos
4 Replies
765 Views
martin_kovar
NXP Employee
NXP Employee

Hi,

this instruction allocates stack for the function. At the end of the function, there is something like se_addi r1,0x20 which returns stack pointer to the previous position (before function was called).

Regards,

Martin

0 Kudos
764 Views
lvyang
Contributor III

Hi Martin,

Does the compile define the symble "rsp" as a stack pointer?

If so how to realize push and pop function.

Thanks in advance.

0 Kudos
764 Views
martin_kovar
NXP Employee
NXP Employee

Hello,

rsp is only (compiler) symbolic name for r1 register. If you look at the PPC EABI standard, you will find there that r1 register is always stack pointer.

What do you mean by push and pop functions?

If you create and call function in C language, compiler automatically create stack frame for this function.

But you can use nofralloc directive in your asm function:

pastedImage_1.png

Regards,

Martin

0 Kudos
764 Views
lvyang
Contributor III

Thanks a lot.

0 Kudos