Changeset 4074601 in mainline


Ignore:
Timestamp:
2009-12-30T00:33:22Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b2a5b41
Parents:
e84037f
Message:

Clear the %i7 register in the task and thread entry functions to stop tracing
the stack beyond those points. Note that %fp cannot be used for this purpose
because it always needs to be a valid stack pointer. Change
frame_pointer_validate() accordingly.

Location:
uspace/lib/libc/arch/sparc64/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/arch/sparc64/src/entry.s

    re84037f r4074601  
    3939#
    4040__entry:
     41        #
     42        # Stop stack traces in this function.
     43        #
     44        clr %i7
     45
    4146        # Pass pcb_ptr as the first argument to __main()
    4247        mov %o1, %o0
  • uspace/lib/libc/arch/sparc64/src/stacktrace.S

    re84037f r4074601  
    5151
    5252frame_pointer_validate:
    53         # Just return the frame address.
    54         retl
    55         nop
     53        #
     54        # Fall through - we detect the last frame in the trace by zero %i7.
     55        #
    5656
    5757return_address_get:
  • uspace/lib/libc/arch/sparc64/src/thread_entry.s

    re84037f r4074601  
    3535#
    3636__thread_entry:
     37        #
     38        # Stop stack traces in this function.
     39        #
     40        clr %i7
     41
    3742        sethi %hi(_gp), %l7
    3843        call __thread_main              ! %o0 contains address of uarg
Note: See TracChangeset for help on using the changeset viewer.