Changes in / [a7a0417:e405228] in mainline


Ignore:
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.