Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // The function waits until core_start_ptr is non-null and then jumps to it.
- // [[noreturn]] void aux_core_wait();
- .global aux_core_wait
- aux_core_wait:
- // load core_start_ptr until non-null
- // use atomic load
- adrp x5, core_start_ptr
- add x5, x5, :lo12:core_start_ptr
- aux_core_wait_loop:
- ldar x4, [x5] // load core_start_ptr with acquire ordering
- cbnz x4, aux_core_wait_done
- wfe
- b aux_core_wait
- aux_core_wait_done:
- clrex
- // jump to core_start_ptr
- br x4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement