diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2018-02-02 20:37:30 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2018-02-02 20:37:30 +0300 |
commit | e82235769795e9501f08b64e763b7ac3b3164a7e (patch) | |
tree | 45fe8828063fd19ea3be668c2df7e21d460e9edf /darwin_stop_world.c | |
parent | 6f12c87d903b58384ab9075020a548d7d05250fc (diff) | |
download | bdwgc-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.c | 3 |
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); |