aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'rpython/rlib/rvmprof/src')
-rw-r--r--rpython/rlib/rvmprof/src/shared/_vmprof.c4
-rw-r--r--rpython/rlib/rvmprof/src/shared/vmprof_config.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/rpython/rlib/rvmprof/src/shared/_vmprof.c b/rpython/rlib/rvmprof/src/shared/_vmprof.c
index 34ff0e4738..5a8c451924 100644
--- a/rpython/rlib/rvmprof/src/shared/_vmprof.c
+++ b/rpython/rlib/rvmprof/src/shared/_vmprof.c
@@ -38,6 +38,8 @@ PY_EVAL_RETURN_T * vmprof_eval(PY_STACK_FRAME_T *f, int throwflag)
register PY_STACK_FRAME_T * callee_saved asm("edi");
#elif defined(__arm__)
register PY_STACK_FRAME_T * callee_saved asm("r4");
+#elif defined(__aarch64__)
+ register PY_STACK_FRAME_T * callee_saved asm("x19");
#else
# error "platform not supported"
#endif
@@ -47,7 +49,7 @@ PY_EVAL_RETURN_T * vmprof_eval(PY_STACK_FRAME_T *f, int throwflag)
"movq %1, %0\t\n"
#elif defined(X86_32)
"mov %1, %0\t\n"
-#elif defined(__arm__)
+#elif defined(__arm__) || defined(__aarch64__)
"mov %1, %0\t\n"
#else
# error "platform not supported"
diff --git a/rpython/rlib/rvmprof/src/shared/vmprof_config.h b/rpython/rlib/rvmprof/src/shared/vmprof_config.h
index 3985ab670a..69a1b585f4 100644
--- a/rpython/rlib/rvmprof/src/shared/vmprof_config.h
+++ b/rpython/rlib/rvmprof/src/shared/vmprof_config.h
@@ -24,6 +24,8 @@
#define PC_FROM_UCONTEXT uc_mcontext.gregs[REG_EIP]
#elif defined(__s390x__)
#define PC_FROM_UCONTEXT uc_mcontext.psw.addr
+#elif defined(__aarch64__)
+ #define PC_FROM_UCONTEXT uc_mcontext.pc
#else
/* linux, gnuc */
#define PC_FROM_UCONTEXT uc_mcontext.gregs[REG_RIP]