Changeset 827d73f in mainline for uspace/lib/libc/arch
- Timestamp:
- 2010-02-12T14:09:22Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a70bda4
- Parents:
- 918e9910 (diff), e70edd1 (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. - Location:
- uspace/lib/libc/arch
- Files:
-
- 27 added
- 3 deleted
- 31 edited
- 3 moved
-
amd64/Makefile.inc (modified) (1 diff)
-
amd64/include/inttypes.h (added)
-
amd64/include/istate.h (added)
-
amd64/include/limits.h (modified) (1 diff)
-
amd64/include/types.h (modified) (1 diff)
-
amd64/src/stacktrace.c (added)
-
amd64/src/stacktrace_asm.S (added)
-
arm32/Makefile.inc (modified) (1 diff)
-
arm32/include/inttypes.h (added)
-
arm32/include/istate.h (added)
-
arm32/include/limits.h (modified) (2 diffs)
-
arm32/include/types.h (modified) (1 diff)
-
arm32/src/stacktrace.S (deleted)
-
arm32/src/stacktrace.c (added)
-
arm32/src/stacktrace_asm.S (added)
-
ia32/Makefile.inc (modified) (1 diff)
-
ia32/include/inttypes.h (added)
-
ia32/include/istate.h (added)
-
ia32/include/limits.h (modified) (1 diff)
-
ia32/include/syscall.h (modified) (1 diff)
-
ia32/include/tls.h (modified) (1 diff)
-
ia32/include/types.h (modified) (1 diff)
-
ia32/src/stacktrace.S (deleted)
-
ia32/src/stacktrace.c (added)
-
ia32/src/stacktrace_asm.S (added)
-
ia64/Makefile.inc (modified) (1 diff)
-
ia64/include/ddi.h (modified) (1 diff)
-
ia64/include/faddr.h (modified) (2 diffs)
-
ia64/include/fibril.h (modified) (2 diffs)
-
ia64/include/inttypes.h (added)
-
ia64/include/istate.h (added)
-
ia64/include/limits.h (modified) (2 diffs)
-
ia64/include/types.h (modified) (4 diffs)
-
ia64/src/stacktrace.c (added)
-
ia64/src/stacktrace_asm.S (added)
-
mips32/Makefile.inc (modified) (1 diff)
-
mips32/include/inttypes.h (added)
-
mips32/include/istate.h (added)
-
mips32/include/limits.h (modified) (2 diffs)
-
mips32/include/types.h (modified) (1 diff)
-
mips32/src/stacktrace.c (added)
-
mips32/src/stacktrace_asm.S (moved) (moved from uspace/app/edit/Makefile.common ) (2 diffs)
-
mips32eb/Makefile.inc (modified) (1 diff)
-
mips32eb/include/inttypes.h (added)
-
mips32eb/include/istate.h (added)
-
ppc32/Makefile.inc (modified) (1 diff)
-
ppc32/include/inttypes.h (added)
-
ppc32/include/istate.h (added)
-
ppc32/include/limits.h (modified) (2 diffs)
-
ppc32/include/types.h (modified) (1 diff)
-
ppc32/src/entry.s (modified) (1 diff)
-
ppc32/src/stacktrace.c (added)
-
ppc32/src/stacktrace_asm.S (moved) (moved from uspace/lib/libc/arch/ppc32/src/stacktrace.S ) (1 diff)
-
ppc32/src/thread_entry.s (modified) (1 diff)
-
sparc64/Makefile.inc (modified) (1 diff)
-
sparc64/include/ddi.h (modified) (1 diff)
-
sparc64/include/fibril.h (modified) (2 diffs)
-
sparc64/include/inttypes.h (added)
-
sparc64/include/istate.h (added)
-
sparc64/include/limits.h (modified) (2 diffs)
-
sparc64/include/types.h (modified) (2 diffs)
-
sparc64/src/stacktrace.S (deleted)
-
sparc64/src/stacktrace.c (added)
-
sparc64/src/stacktrace_asm.S (moved) (moved from uspace/lib/libc/arch/amd64/src/stacktrace.S ) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/arch/amd64/Makefile.inc
r918e9910 r827d73f 37 37 arch/$(UARCH)/src/fibril.S \ 38 38 arch/$(UARCH)/src/tls.c \ 39 arch/$(UARCH)/src/stacktrace.S 39 arch/$(UARCH)/src/stacktrace.c \ 40 arch/$(UARCH)/src/stacktrace_asm.S 40 41 41 42 GCC_CFLAGS += -fno-omit-frame-pointer -
uspace/lib/libc/arch/amd64/include/limits.h
r918e9910 r827d73f 36 36 #define LIBC_amd64_LIMITS_H_ 37 37 38 # define LONG_MIN MIN_INT64 39 # define LONG_MAX MAX_INT64 40 # define ULONG_MIN MIN_UINT64 41 # define ULONG_MAX MAX_UINT64 38 #define LONG_MIN MIN_INT64 39 #define LONG_MAX MAX_INT64 40 #define ULONG_MIN MIN_UINT64 41 #define ULONG_MAX MAX_UINT64 42 43 #define SIZE_MIN MIN_UINT64 44 #define SIZE_MAX MAX_UINT64 45 #define SSIZE_MIN MIN_INT64 46 #define SSIZE_MAX MAX_INT64 42 47 43 48 #endif -
uspace/lib/libc/arch/amd64/include/types.h
r918e9910 r827d73f 36 36 #define LIBC_amd64_TYPES_H_ 37 37 38 #define __64_BITS__ 39 38 40 typedef unsigned long long sysarg_t; 39 41 -
uspace/lib/libc/arch/arm32/Makefile.inc
r918e9910 r827d73f 38 38 arch/$(UARCH)/src/tls.c \ 39 39 arch/$(UARCH)/src/eabi.S \ 40 arch/$(UARCH)/src/stacktrace.S 40 arch/$(UARCH)/src/stacktrace.c \ 41 arch/$(UARCH)/src/stacktrace_asm.S 41 42 42 43 GCC_CFLAGS += -ffixed-r9 -mtp=soft -mapcs-frame -fno-omit-frame-pointer -
uspace/lib/libc/arch/arm32/include/limits.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcarm32 29 /** @addtogroup libcarm32 30 30 * @{ 31 31 */ 32 /** @file 32 /** @file 33 33 * @brief Limits declarations. 34 34 */ … … 42 42 #define ULONG_MAX MAX_UINT32 43 43 44 #define SIZE_MIN MIN_UINT32 45 #define SIZE_MAX MAX_UINT32 46 #define SSIZE_MIN MIN_INT32 47 #define SSIZE_MAX MAX_INT32 48 44 49 #endif 45 50 -
uspace/lib/libc/arch/arm32/include/types.h
r918e9910 r827d73f 37 37 #define LIBC_arm32_TYPES_H_ 38 38 39 #define __32_BITS__ 40 39 41 typedef unsigned int sysarg_t; 40 42 -
uspace/lib/libc/arch/ia32/Makefile.inc
r918e9910 r827d73f 38 38 arch/$(UARCH)/src/tls.c \ 39 39 arch/$(UARCH)/src/setjmp.S \ 40 arch/$(UARCH)/src/stacktrace.S 40 arch/$(UARCH)/src/stacktrace.c \ 41 arch/$(UARCH)/src/stacktrace_asm.S 41 42 42 43 GCC_CFLAGS += -march=pentium -
uspace/lib/libc/arch/ia32/include/limits.h
r918e9910 r827d73f 36 36 #define LIBC_ia32__LIMITS_H_ 37 37 38 # define LONG_MIN MIN_INT32 39 # define LONG_MAX MAX_INT32 40 # define ULONG_MIN MIN_UINT32 41 # define ULONG_MAX MAX_UINT32 38 #define LONG_MIN MIN_INT32 39 #define LONG_MAX MAX_INT32 40 #define ULONG_MIN MIN_UINT32 41 #define ULONG_MAX MAX_UINT32 42 43 #define SIZE_MIN MIN_UINT32 44 #define SIZE_MAX MAX_UINT32 45 #define SSIZE_MIN MIN_INT32 46 #define SSIZE_MAX MAX_INT32 42 47 43 48 #endif -
uspace/lib/libc/arch/ia32/include/syscall.h
r918e9910 r827d73f 40 40 #include <kernel/syscall/syscall.h> 41 41 42 #define __syscall0 __syscall_fast_func43 #define __syscall1 __syscall_fast_func44 #define __syscall2 __syscall_fast_func45 #define __syscall3 __syscall_fast_func46 #define __syscall4 __syscall_fast_func47 #define __syscall5 __syscall_slow48 #define __syscall6 __syscall_slow42 #define __syscall0 __syscall_fast_func 43 #define __syscall1 __syscall_fast_func 44 #define __syscall2 __syscall_fast_func 45 #define __syscall3 __syscall_fast_func 46 #define __syscall4 __syscall_fast_func 47 #define __syscall5 __syscall_slow 48 #define __syscall6 __syscall_slow 49 49 50 extern sysarg_t 51 (* __syscall_fast_func)(const sysarg_t, const sysarg_t, const sysarg_t, 50 extern sysarg_t (* __syscall_fast_func)(const sysarg_t, const sysarg_t, 51 const sysarg_t, const sysarg_t, const sysarg_t, const sysarg_t, 52 const syscall_t); 53 54 extern sysarg_t __syscall_slow(const sysarg_t, const sysarg_t, const sysarg_t, 52 55 const sysarg_t, const sysarg_t, const sysarg_t, const syscall_t); 53 54 extern sysarg_t55 __syscall_slow(const sysarg_t, const sysarg_t, const sysarg_t, const sysarg_t,56 const sysarg_t, const sysarg_t, const syscall_t);57 56 58 57 #endif -
uspace/lib/libc/arch/ia32/include/tls.h
r918e9910 r827d73f 53 53 { 54 54 void *retval; 55 56 asm ("movl %%gs:0, %0" : "=r"(retval)); 55 56 asm ( 57 "movl %%gs:0, %0" 58 : "=r" (retval) 59 ); 60 57 61 return retval; 58 62 } -
uspace/lib/libc/arch/ia32/include/types.h
r918e9910 r827d73f 36 36 #define LIBC_ia32_TYPES_H_ 37 37 38 #define __32_BITS__ 39 38 40 typedef unsigned int sysarg_t; 39 41 -
uspace/lib/libc/arch/ia64/Makefile.inc
r918e9910 r827d73f 37 37 arch/$(UARCH)/src/tls.c \ 38 38 arch/$(UARCH)/src/ddi.c \ 39 arch/$(UARCH)/src/stacktrace.S 39 arch/$(UARCH)/src/stacktrace.c \ 40 arch/$(UARCH)/src/stacktrace_asm.S 40 41 41 42 GCC_CFLAGS += -fno-unwind-tables -
uspace/lib/libc/arch/ia64/include/ddi.h
r918e9910 r827d73f 39 39 #include <libarch/types.h> 40 40 41 #define IO_SPACE_BOUNDARY ( 64 * 1024)41 #define IO_SPACE_BOUNDARY ((void *) (64 * 1024)) 42 42 43 43 uint64_t get_ia64_iospace_address(void); -
uspace/lib/libc/arch/ia64/include/faddr.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcia64 29 /** @addtogroup libcia64 30 30 * @{ 31 31 */ … … 38 38 #include <libarch/types.h> 39 39 40 /** 40 /** 41 41 * 42 42 * Calculate absolute address of function 43 43 * referenced by fptr pointer. 44 44 * 45 * @param f Function pointer.45 * @param fptr Function pointer. 46 46 * 47 47 */ 48 #define FADDR(f ) (*((uintptr_t *)(f)));48 #define FADDR(fptr) (((fncptr_t *) (fptr))->fnc) 49 49 50 50 #endif -
uspace/lib/libc/arch/ia64/include/fibril.h
r918e9910 r827d73f 53 53 #define PSTHREAD_INITIAL_STACK_DIVISION 2 54 54 55 #ifdef context_set56 #undef context_set57 #endif58 59 55 #define context_set(c, _pc, stack, size, tls) \ 60 56 do { \ … … 110 106 uint64_t pr; 111 107 112 __r128f2 __attribute__ ((aligned(16)));113 __r128f3;114 __r128f4;115 __r128f5;108 uint128_t f2 __attribute__ ((aligned(16))); 109 uint128_t f3; 110 uint128_t f4; 111 uint128_t f5; 116 112 117 __r128f16;118 __r128f17;119 __r128f18;120 __r128f19;121 __r128f20;122 __r128f21;123 __r128f22;124 __r128f23;125 __r128f24;126 __r128f25;127 __r128f26;128 __r128f27;129 __r128f28;130 __r128f29;131 __r128f30;132 __r128f31;113 uint128_t f16; 114 uint128_t f17; 115 uint128_t f18; 116 uint128_t f19; 117 uint128_t f20; 118 uint128_t f21; 119 uint128_t f22; 120 uint128_t f23; 121 uint128_t f24; 122 uint128_t f25; 123 uint128_t f26; 124 uint128_t f27; 125 uint128_t f28; 126 uint128_t f29; 127 uint128_t f30; 128 uint128_t f31; 133 129 134 130 } context_t; -
uspace/lib/libc/arch/ia64/include/limits.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcia64 29 /** @addtogroup libcia64 30 30 * @{ 31 31 */ … … 36 36 #define LIBC_ia64_LIMITS_H_ 37 37 38 # define LONG_MIN MIN_INT64 39 # define LONG_MAX MAX_INT64 40 # define ULONG_MIN MIN_UINT64 41 # define ULONG_MAX MAX_UINT64 38 #define LONG_MIN MIN_INT64 39 #define LONG_MAX MAX_INT64 40 #define ULONG_MIN MIN_UINT64 41 #define ULONG_MAX MAX_UINT64 42 43 #define SIZE_MIN MIN_UINT64 44 #define SIZE_MAX MAX_UINT64 45 #define SSIZE_MIN MIN_INT64 46 #define SSIZE_MAX MAX_INT64 42 47 43 48 #endif -
uspace/lib/libc/arch/ia64/include/types.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcia64 29 /** @addtogroup libcia64 30 30 * @{ 31 31 */ … … 35 35 #ifndef LIBC_ia64_TYPES_H_ 36 36 #define LIBC_ia64_TYPES_H_ 37 38 #define __64_BITS__ 37 39 38 40 typedef unsigned long long sysarg_t; … … 48 50 typedef unsigned long int uint64_t; 49 51 52 typedef struct { 53 uint64_t lo; 54 uint64_t hi; 55 } uint128_t; 56 50 57 typedef int64_t ssize_t; 51 58 typedef uint64_t size_t; … … 53 60 typedef uint64_t uintptr_t; 54 61 55 typedef unsigned char __r8; /* Reserve byte */ 56 typedef unsigned short __r16; 57 typedef unsigned int __r32; 58 typedef unsigned long __r64; 59 60 typedef struct __r128{ 61 __r64 lo; 62 __r64 hi; 63 } __r128; 62 typedef struct { 63 uintptr_t fnc; 64 uintptr_t gp; 65 } __attribute__((may_alias)) fncptr_t; 64 66 65 67 #endif -
uspace/lib/libc/arch/mips32/Makefile.inc
r918e9910 r827d73f 36 36 arch/$(UARCH)/src/fibril.S \ 37 37 arch/$(UARCH)/src/tls.c \ 38 arch/$(UARCH)/src/stacktrace.S 38 arch/$(UARCH)/src/stacktrace.c \ 39 arch/$(UARCH)/src/stacktrace_asm.S 39 40 40 41 GCC_CFLAGS += -mips3 -
uspace/lib/libc/arch/mips32/include/limits.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcmips32 29 /** @addtogroup libcmips32 30 30 * @{ 31 31 */ 32 32 /** @file 33 * @ingroup libcmips32eb 33 * @ingroup libcmips32eb 34 34 */ 35 35 … … 37 37 #define LIBC_mips32__LIMITS_H_ 38 38 39 # define LONG_MIN MIN_INT32 40 # define LONG_MAX MAX_INT32 41 # define ULONG_MIN MIN_UINT32 42 # define ULONG_MAX MAX_UINT32 39 #define LONG_MIN MIN_INT32 40 #define LONG_MAX MAX_INT32 41 #define ULONG_MIN MIN_UINT32 42 #define ULONG_MAX MAX_UINT32 43 44 #define SIZE_MIN MIN_UINT32 45 #define SIZE_MAX MAX_UINT32 46 #define SSIZE_MIN MIN_INT32 47 #define SSIZE_MAX MAX_INT32 43 48 44 49 #endif -
uspace/lib/libc/arch/mips32/include/types.h
r918e9910 r827d73f 37 37 #define LIBC_mips32_TYPES_H_ 38 38 39 #define __32_BITS__ 40 39 41 typedef unsigned int sysarg_t; 40 42 -
uspace/lib/libc/arch/mips32/src/stacktrace_asm.S
r918e9910 r827d73f 1 1 # 2 # Copyright (c) 200 5 Martin Decky2 # Copyright (c) 2009 Jakub Jermar 3 3 # All rights reserved. 4 4 # … … 27 27 # 28 28 29 .text 29 30 30 ## Common names 31 # 31 .set noat 32 .set noreorder 32 33 33 LIBC_PREFIX = ../../lib/libc 34 SOFTINT_PREFIX = ../../lib/softint35 LIBS = $(LIBC_PREFIX)/libc.a 34 .global stacktrace_prepare 35 .global stacktrace_fp_get 36 .global stacktrace_pc_get 36 37 37 DEPEND = Makefile.depend 38 DEPEND_PREV = $(DEPEND).prev 39 OUTPUT = edit 38 stacktrace_prepare: 39 stacktrace_fp_get: 40 stacktrace_pc_get: 41 j $ra 42 xor $v0, $v0 -
uspace/lib/libc/arch/mips32eb/Makefile.inc
r918e9910 r827d73f 35 35 ARCH_SOURCES += arch/$(UARCH)/src/syscall.c \ 36 36 arch/$(UARCH)/src/fibril.S \ 37 arch/$(UARCH)/src/tls.c 37 arch/$(UARCH)/src/tls.c \ 38 arch/$(UARCH)/src/stacktrace.c \ 39 arch/$(UARCH)/src/stacktrace_asm.S 38 40 39 41 GCC_CFLAGS += -mips3 -
uspace/lib/libc/arch/ppc32/Makefile.inc
r918e9910 r827d73f 36 36 arch/$(UARCH)/src/fibril.S \ 37 37 arch/$(UARCH)/src/tls.c \ 38 arch/$(UARCH)/src/stacktrace.S 38 arch/$(UARCH)/src/stacktrace.c \ 39 arch/$(UARCH)/src/stacktrace_asm.S 39 40 40 41 GCC_CFLAGS += -mcpu=powerpc -msoft-float -m32 -
uspace/lib/libc/arch/ppc32/include/limits.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcppc32 29 /** @addtogroup libcppc32 30 30 * @{ 31 31 */ … … 41 41 #define ULONG_MAX MAX_UINT32 42 42 43 #define SIZE_MIN MIN_UINT32 44 #define SIZE_MAX MAX_UINT32 45 #define SSIZE_MIN MIN_INT32 46 #define SSIZE_MAX MAX_INT32 47 43 48 #endif 44 49 -
uspace/lib/libc/arch/ppc32/include/types.h
r918e9910 r827d73f 36 36 #define LIBC_ppc32_TYPES_H_ 37 37 38 #define __32_BITS__ 39 38 40 typedef unsigned int sysarg_t; 39 41 -
uspace/lib/libc/arch/ppc32/src/entry.s
r918e9910 r827d73f 38 38 # 39 39 __entry: 40 # 41 # Create the first stack frame. 42 # 43 li %r3, 0 44 stw %r3, 0(%r1) 45 stwu %r1, -16(%r1) 46 40 47 # Pass the PCB pointer to __main() as the first argument. 41 48 # The first argument is passed in r3. -
uspace/lib/libc/arch/ppc32/src/stacktrace_asm.S
r918e9910 r827d73f 31 31 #include <libarch/regname.h> 32 32 33 .global frame_pointer_get 34 .global frame_pointer_prev 35 .global frame_pointer_validate 36 .global return_address_get 37 .global program_counter_get 33 .global stacktrace_prepare 34 .global stacktrace_fp_get 35 .global stacktrace_pc_get 38 36 39 frame_pointer_get: 40 frame_pointer_prev: 41 frame_pointer_validate: 42 return_address_get: 43 program_counter_get: 44 li r3, 0 37 stacktrace_prepare: 45 38 blr 39 40 stacktrace_fp_get: 41 mr r3, sp 42 blr 43 44 stacktrace_pc_get: 45 mflr r3 46 blr -
uspace/lib/libc/arch/ppc32/src/thread_entry.s
r918e9910 r827d73f 35 35 # 36 36 __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 37 44 b __thread_main 38 45 -
uspace/lib/libc/arch/sparc64/Makefile.inc
r918e9910 r827d73f 35 35 ARCH_SOURCES += arch/$(UARCH)/src/fibril.S \ 36 36 arch/$(UARCH)/src/tls.c \ 37 arch/$(UARCH)/src/stacktrace.S 37 arch/$(UARCH)/src/stacktrace.c \ 38 arch/$(UARCH)/src/stacktrace_asm.S 38 39 39 40 GCC_CFLAGS += -mcpu=ultrasparc -m64 -
uspace/lib/libc/arch/sparc64/include/ddi.h
r918e9910 r827d73f 37 37 #include <libarch/types.h> 38 38 39 static inline memory_barrier(void)39 static inline void memory_barrier(void) 40 40 { 41 asm volatile ("membar #LoadLoad | #StoreStore\n" ::: "memory"); 41 asm volatile ( 42 "membar #LoadLoad | #StoreStore\n" 43 ::: "memory" 44 ); 42 45 } 43 46 -
uspace/lib/libc/arch/sparc64/include/fibril.h
r918e9910 r827d73f 42 42 #define SP_DELTA (STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE) 43 43 44 #ifdef context_set45 #undef context_set46 #endif47 48 44 #define context_set(c, _pc, stack, size, ptls) \ 49 45 do { \ … … 52 48 STACK_ALIGNMENT) - (STACK_BIAS + SP_DELTA); \ 53 49 (c)->fp = -STACK_BIAS; \ 54 (c)->tp = ptls; \50 (c)->tp = (uint64_t) ptls; \ 55 51 } while (0) 56 52 -
uspace/lib/libc/arch/sparc64/include/limits.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcsparc64 29 /** @addtogroup libcsparc64 30 30 * @{ 31 31 */ … … 41 41 #define ULONG_MAX MAX_UINT64 42 42 43 #define SIZE_MIN MIN_UINT64 44 #define SIZE_MAX MAX_UINT64 45 #define SSIZE_MIN MIN_INT64 46 #define SSIZE_MAX MAX_INT64 47 43 48 #endif 44 49 -
uspace/lib/libc/arch/sparc64/include/types.h
r918e9910 r827d73f 27 27 */ 28 28 29 /** @addtogroup libcsparc64 29 /** @addtogroup libcsparc64 30 30 * @{ 31 31 */ … … 35 35 #ifndef LIBC_sparc64_TYPES_H_ 36 36 #define LIBC_sparc64_TYPES_H_ 37 38 #define __64_BITS__ 37 39 38 40 typedef unsigned long sysarg_t; -
uspace/lib/libc/arch/sparc64/src/stacktrace_asm.S
r918e9910 r827d73f 27 27 # 28 28 29 #include <libarch/stack.h> 30 29 31 .text 30 32 31 .global frame_pointer_get 32 .global frame_pointer_prev 33 .global frame_pointer_validate 34 .global return_address_get 35 .global program_counter_get 33 .global stacktrace_prepare 34 .global stacktrace_fp_get 35 .global stacktrace_pc_get 36 36 37 frame_pointer_get: 38 movq %rbp, %rax 37 stacktrace_prepare: 38 save %sp, -(STACK_WINDOW_SAVE_AREA_SIZE+STACK_ARG_SAVE_AREA_SIZE), %sp 39 # Flush all other windows to memory so that we can read their contents. 40 flushw 39 41 ret 42 restore 40 43 41 frame_pointer_prev: 42 movq (%rdi), %rax 43 ret 44 stacktrace_fp_get: 45 # Add the stack bias to %sp to get the actual address. 46 retl 47 add %sp, STACK_BIAS, %o0 44 48 45 frame_pointer_validate: 46 movq %rdi, %rax 47 ret 48 49 return_address_get: 50 movq 8(%rdi), %rax 51 ret 52 53 program_counter_get: 54 movq (%rsp), %rax 55 ret 49 stacktrace_pc_get: 50 retl 51 mov %o7, %o0
Note:
See TracChangeset
for help on using the changeset viewer.
