| Index: runtime/vm/globals.h
|
| diff --git a/runtime/vm/globals.h b/runtime/vm/globals.h
|
| index 597756d82488e91a128a025571e954ec32fa0875..6903437dc707fe45cccfed490747c5ce974c2390 100644
|
| --- a/runtime/vm/globals.h
|
| +++ b/runtime/vm/globals.h
|
| @@ -90,6 +90,44 @@ static const uword kZapUninitializedWord = 0xabababababababab;
|
| #endif
|
|
|
|
|
| +// Macros to get the contents of sp and fp registers.
|
| +#if defined(TARGET_OS_WINDOWS)
|
| +
|
| +#if defined(TARGET_ARCH_IA32)
|
| +#define COPY_SP_REGISTER(sp) UNIMPLEMENTED();
|
| +#define COPY_FP_REGISTER(fp) UNIMPLEMENTED();
|
| +#elif defined(TARGET_ARCH_X64)
|
| +#define COPY_SP_REGISTER(sp) UNIMPLEMENTED();
|
| +#define COPY_FP_REGISTER(fp) UNIMPLEMENTED();
|
| +#else
|
| +#error Unknown target architecture.
|
| +#endif
|
| +
|
| +#else // !defined(TARGET_OS_WINDOWS))
|
| +
|
| +// Assume GCC-like inline syntax is valid.
|
| +#if defined(TARGET_ARCH_IA32)
|
| +#define COPY_SP_REGISTER(sp) asm volatile ("movl %%esp, %0" : "=r" (sp) );
|
| +#define COPY_FP_REGISTER(fp) asm volatile ("movl %%ebp, %0" : "=r" (fp) );
|
| +#elif defined(TARGET_ARCH_X64)
|
| +#define COPY_SP_REGISTER(sp) asm volatile ("movq %%rsp, %0" : "=r" (sp) );
|
| +#define COPY_FP_REGISTER(fp) asm volatile ("movq %%rbp, %0" : "=r" (fp) );
|
| +#elif defined(TARGET_ARCH_ARM)
|
| +#define COPY_SP_REGISTER(sp) UNIMPLEMENTED();
|
| +#define COPY_FP_REGISTER(fp) UNIMPLEMENTED();
|
| +#elif defined(TARGET_ARCH_ARM64)
|
| +#define COPY_SP_REGISTER(sp) UNIMPLEMENTED();
|
| +#define COPY_FP_REGISTER(fp) UNIMPLEMENTED();
|
| +#elif defined(TARGET_ARCH_MIPS)
|
| +#define COPY_SP_REGISTER(sp) UNIMPLEMENTED();
|
| +#define COPY_FP_REGISTER(fp) UNIMPLEMENTED();
|
| +#else
|
| +#error Unknown target architecture.
|
| +#endif
|
| +
|
| +
|
| +#endif // !defined(TARGET_OS_WINDOWS))
|
| +
|
| } // namespace dart
|
|
|
| #endif // VM_GLOBALS_H_
|
|
|