66#if defined(Q_CC_GNU) || __has_builtin(__builtin_frame_address)
67 stackPointer = __builtin_frame_address(0);
68#elif defined(Q_CC_MSVC)
69 stackPointer = &stackPointer;
70#elif defined(Q_PROCESSOR_X86_64)
71 __asm__ __volatile__(
"movq %%rsp, %0" :
"=r"(stackPointer) : :);
72#elif defined(Q_PROCESSOR_X86)
73 __asm__ __volatile__(
"movl %%esp, %0" :
"=r"(stackPointer) : :);
74#elif defined(Q_PROCESSOR_ARM_64) && defined(__ILP32__)
75 quint64 stackPointerRegister = 0;
76 __asm__ __volatile__(
"mov %0, sp" :
"=r"(stackPointerRegister) : :);
77 stackPointer =
reinterpret_cast<
void *>(stackPointerRegister);
78#elif defined(Q_PROCESSOR_ARM_64) || defined(Q_PROCESSOR_ARM_32)
79 __asm__ __volatile__(
"mov %0, sp" :
"=r"(stackPointer) : :);
81 stackPointer = &stackPointer;