From e82235769795e9501f08b64e763b7ac3b3164a7e Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Fri, 2 Feb 2018 20:37:30 +0300 Subject: 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. --- darwin_stop_world.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'darwin_stop_world.c') 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); -- cgit v1.2.1