Changeset 40cb845e in mainline for uspace/lib/libc/arch/ia32


Ignore:
Timestamp:
2009-12-30T19:21:45Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a7a0417
Parents:
26b50cb (diff), f0452536 (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 the stack tracing branch.

So far, only userspace stack tracing on amd64, ia32 and sparc64 is supported.
Other architectures have dummy support.

Location:
uspace/lib/libc/arch/ia32
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/arch/ia32/Makefile.inc

    r26b50cb r40cb845e  
    3737        arch/$(UARCH)/src/fibril.S \
    3838        arch/$(UARCH)/src/tls.c \
    39         arch/$(UARCH)/src/setjmp.S
     39        arch/$(UARCH)/src/setjmp.S \
     40        arch/$(UARCH)/src/stacktrace.S
    4041
    4142GCC_CFLAGS += -march=pentium
  • uspace/lib/libc/arch/ia32/include/fibril.h

    r26b50cb r40cb845e  
    4444#define SP_DELTA     (12)
    4545
     46#define context_set(c, _pc, stack, size, ptls) \
     47        do { \
     48                (c)->pc = (sysarg_t) (_pc); \
     49                (c)->sp = ((sysarg_t) (stack)) + (size) - SP_DELTA; \
     50                (c)->tls = (sysarg_t) (ptls); \
     51                (c)->ebp = 0; \
     52        } while (0)
     53       
    4654/* We include only registers that must be preserved
    4755 * during function call
  • uspace/lib/libc/arch/ia32/src/entry.s

    r26b50cb r40cb845e  
    5555        movl $__syscall_fast, (%eax)
    56560:
     57        #
     58        # Create the first stack frame.
     59        #
     60        pushl $0
     61        movl %esp, %ebp
    5762
    5863        # Pass the PCB pointer to __main as the first argument
  • uspace/lib/libc/arch/ia32/src/thread_entry.s

    r26b50cb r40cb845e  
    4242
    4343        #
     44        # Create the first stack frame.
     45        #
     46        pushl $0
     47        mov %esp, %ebp
     48
     49        #
    4450        # EAX contains address of uarg.
    4551        #
Note: See TracChangeset for help on using the changeset viewer.