Lines 38-43
static inline void *my_get_stack_pointer
Link Here
|
38 |
#if defined(__GNUC__) || defined(__clang__) /* GCC and Clang compilers */ |
38 |
#if defined(__GNUC__) || defined(__clang__) /* GCC and Clang compilers */ |
39 |
#if defined(__i386__) /* Intel x86 (32-bit) */ |
39 |
#if defined(__i386__) /* Intel x86 (32-bit) */ |
40 |
__asm__ volatile ("movl %%esp, %0" : "=r" (stack_ptr)); |
40 |
__asm__ volatile ("movl %%esp, %0" : "=r" (stack_ptr)); |
|
|
41 |
#elif defined(__x86_64__) && defined (__ILP32__) /* Intel x86-64 (64-bit), X32 ABI */ |
42 |
__asm__ volatile ("movl %%esp, %0" : "=r" (stack_ptr)); |
41 |
#elif defined(__x86_64__) /* Intel x86-64 (64-bit) */ |
43 |
#elif defined(__x86_64__) /* Intel x86-64 (64-bit) */ |
42 |
__asm__ volatile ("movq %%rsp, %0" : "=r" (stack_ptr)); |
44 |
__asm__ volatile ("movq %%rsp, %0" : "=r" (stack_ptr)); |
43 |
#elif defined(__powerpc__) /* PowerPC (32-bit) */ |
45 |
#elif defined(__powerpc__) /* PowerPC (32-bit) */ |