Lines Matching +full:half +full:- +full:bit

1 // SPDX-License-Identifier: GPL-2.0-or-later
34 #define VSX20 20 /* First VSX register to check in vsr20-vsr31 subset */
43 /* First context will be set with these values, i.e. non-speculative */
51 {-1, -2, -3, -4 },{-5, -6, -7, -8 },{-9, -10,-11,-12},
52 {-13,-14,-15,-16},{-17,-18,-19,-20},{-21,-22,-23,-24},
53 {-25,-26,-27,-28},{-29,-30,-31,-32},{-33,-34,-35,-36},
54 {-37,-38,-39,-40},{-41,-42,-43,-44},{-45,-46,-47,-48}
63 ucontext_t *tm_ucp = ucp->uc_link; in signal_usr1()
68 * FP registers (f0-31) overlap the most significant 64 bits of VSX in signal_usr1()
69 * registers vsr0-31, whilst VMX registers vr0-31, being 128-bit like in signal_usr1()
70 * the VSX registers, overlap fully the other half of VSX registers, in signal_usr1()
71 * i.e. vr0-31 overlaps fully vsr32-63. in signal_usr1()
74 * appeared first on the architecture), VMX registers vr0-31 (so VSX in signal_usr1()
75 * half vsr32-63 too) are stored right after the v_regs pointer, in an in signal_usr1()
80 * The other VSX half (vsr0-31) is hence stored below vr0-31/vsr32-63 in signal_usr1()
81 * registers, but only the least significant 64 bits of vsr0-31. The in signal_usr1()
82 * most significant 64 bits of vsr0-31 (f0-31), as it overlaps the FP in signal_usr1()
87 * exists, so v_regs points to where vr0-31 / vsr32-63 registers are in signal_usr1()
89 * skips all the slots used to store vr0-31 / vsr32-64 and points to in signal_usr1()
90 * part of one VSX half, i.e. v_regs + 1 points to the least significant in signal_usr1()
91 * 64 bits of vsr0-31. The other part of this half (the most significant in signal_usr1()
92 * part of vsr0-31) is stored in fp_regs. in signal_usr1()
95 /* Get pointer to least significant doubleword of vsr0-31 */ in signal_usr1()
96 long *vsx_ptr = (long *)(ucp->uc_mcontext.v_regs + 1); in signal_usr1()
97 long *tm_vsx_ptr = (long *)(tm_ucp->uc_mcontext.v_regs + 1); in signal_usr1()
103 * copy VSX least significant one from 64-bit slots below in signal_usr1()
106 memcpy(vsx, &ucp->uc_mcontext.fp_regs[FPR20 + i], 8); in signal_usr1()
127 * copy VSX least significant one from 64-bit slots below in signal_usr1()
130 memcpy(vsx_tm, &tm_ucp->uc_mcontext.fp_regs[FPR20 + i], 8); in signal_usr1()
170 * contexts accordingly to the values passed through non-NULL in tm_signal_context_chk()