Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset e405228 in mainline


Ignore:
Timestamp:
2010-01-02T18:52:06Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
8786aa5
Parents:
a7a0417 (diff), c6d130c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge stack tracing support for ppc32 userspace.

Location:
uspace/lib/libc
Files:
4 edited

Legend:

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

    ra7a0417 re405228  
    3838#
    3939__entry:
     40        #
     41        # Create the first stack frame.
     42        #
     43        li %r3, 0
     44        stw %r3, 0(%r1)
     45        stwu %r1, -16(%r1)
     46
    4047        # Pass the PCB pointer to __main() as the first argument.
    4148        # The first argument is passed in r3.
  • uspace/lib/libc/arch/ppc32/src/stacktrace.S

    ra7a0417 re405228  
    3838
    3939frame_pointer_get:
     40        mr r3, sp
     41        blr
     42
    4043frame_pointer_prev:
     44        lwz r3, 0(r3)
     45        blr
     46
    4147frame_pointer_validate:
     48        blr
     49
    4250return_address_get:
     51        lwz r3, 4(r3)
     52        blr
     53
    4354program_counter_get:
    44         li r3, 0
     55        mflr r3
    4556        blr
  • uspace/lib/libc/arch/ppc32/src/thread_entry.s

    ra7a0417 re405228  
    3535#
    3636__thread_entry:
     37        #
     38        # Create the first stack frame.
     39        #
     40        li %r4, 0
     41        stw %r4, 0(%r1)
     42        stwu %r1, -16(%r1)
     43
    3744        b __thread_main
    3845
  • uspace/lib/libc/generic/stacktrace.c

    ra7a0417 re405228  
    5252{
    5353        stack_trace_fp_pc(frame_pointer_get(), program_counter_get());
     54        /*
     55         * Prevent the tail call optimization of the previous call by
     56         * making it a non-tail call.
     57         */
     58        (void) frame_pointer_get();
    5459}
    5560
Note: See TracChangeset for help on using the changeset viewer.