The current hart set as the join hart

The p_set instruction is used to set a register with the current hart identification.
In the following example, the p_set t0, t0 instruction sets register t0 as core 0, hart 0 (the two least significant bits of t0 receive the current hart number and bits 31-2 receive the core number). The t0 register is forwarded to core 0, hart 1 and then to core 1, hart 0 through p_swcv t6, t0, 4 and p_lwcv t0, 4 instruction pairs. The p_jalr zero, ra, t0 return instruction at the end of core 1, hart 0 uses the received value of t0 to restart core 0, hart 0.

A p_set instruction is used at the beginning of every OpenMP parallel construct to fix the join hart.