Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
19 years ago

question about uc/os2 port on nios2

.global OSIntCtxSw

.global OSCtxSw

OSIntCtxSw:

OSCtxSw:

addi sp, sp, -44

# ifdef ALT_STACK_CHECK

bltu sp, et, .Lstack_overflow // stack overflow branch to .Lstack_overflow

# endif

# if OS_THREAD_SAFE_NEWLIB

ldw r3, %gprel(_rimpure_pt)(gp) /* load the pointer */# endif /* OS_THREAD_SAFE_NEWLIB */

ldw r4, %gprel(OSTCBCur)(gp) // save OSTCBCur

stw ra, 0(sp) // save return address

stw fp, 4(sp) // save frame pointer

stw r23, 8(sp)

stw r22, 12(sp) //save callee register(r16 -r23);

stw r21, 16(sp)

stw r20, 20(sp)

stw r19, 24(sp)

stw r18, 28(sp)

stw r17, 32(sp)

stw r16, 36(sp)

.............

............

this is a part program of uc/os2's port which is related with the nios 2 cpu .

I am not clear abou nios 2 's c complier , in part of the program , the program only save r16~r23(be called callee saved registers),ra,fp,why? the complier haved saved other register?

I am not clera that the complier how deal with the internal register ,the nios2's hardware handbook have few introduction about the register ,where can i find details about the registers' function.

thanks
No RepliesBe the first to reply