summaryrefslogtreecommitdiff
path: root/darwin_stop_world.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2018-02-02 20:37:30 +0300
committerIvan Maidanski <ivmai@mail.ru>2018-02-02 20:37:30 +0300
commite82235769795e9501f08b64e763b7ac3b3164a7e (patch)
tree45fe8828063fd19ea3be668c2df7e21d460e9edf /darwin_stop_world.c
parent6f12c87d903b58384ab9075020a548d7d05250fc (diff)
downloadbdwgc-e82235769795e9501f08b64e763b7ac3b3164a7e.tar.gz
Do not push 'cpsr' register on Darwin/arm
ARM cpsr stands for Control Program State Register. It cannot contain a pointer. * darwin_stop_world.c [ARM32] (GC_stack_range_for): Ignore cpsr register; update comment.
Diffstat (limited to 'darwin_stop_world.c')
-rw-r--r--darwin_stop_world.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/darwin_stop_world.c b/darwin_stop_world.c
index 1eab1f1c..3a8441e7 100644
--- a/darwin_stop_world.c
+++ b/darwin_stop_world.c
@@ -292,9 +292,8 @@ STATIC ptr_t GC_stack_range_for(ptr_t *phi, thread_act_t thread, GC_thread p,
for (; j <= 12; j++)
GC_push_one(state.THREAD_FLD(r[j]));
}
- /* "pc" and "sp" are skipped */
+ /* "cpsr", "pc" and "sp" are skipped */
GC_push_one(state.THREAD_FLD(lr));
- GC_push_one(state.THREAD_FLD(cpsr));
# elif defined(AARCH64)
lo = (void *)state.THREAD_FLD(sp);