fpu.S (8f58c571bf3095278ebda49ce95df5ead27ebb42) fpu.S (bd3c5798484aa9a08302a844d7a75a2ee3b53d05)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Author: Lu Zeng <zenglu@loongson.cn>
4 * Pei Huang <huangpei@loongson.cn>
5 * Huacai Chen <chenhuacai@loongson.cn>
6 *
7 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
8 */

--- 124 unchanged lines hidden (view full) ---

133 movgr2cf $fcc6, \tmp1
134 bstrpick.d \tmp1, \tmp0, 63, 56
135 movgr2cf $fcc7, \tmp1
136 .endm
137
138 .macro sc_save_fcsr base, tmp0
139 movfcsr2gr \tmp0, fcsr0
140 EX st.w \tmp0, \base, 0
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Author: Lu Zeng <zenglu@loongson.cn>
4 * Pei Huang <huangpei@loongson.cn>
5 * Huacai Chen <chenhuacai@loongson.cn>
6 *
7 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
8 */

--- 124 unchanged lines hidden (view full) ---

133 movgr2cf $fcc6, \tmp1
134 bstrpick.d \tmp1, \tmp0, 63, 56
135 movgr2cf $fcc7, \tmp1
136 .endm
137
138 .macro sc_save_fcsr base, tmp0
139 movfcsr2gr \tmp0, fcsr0
140 EX st.w \tmp0, \base, 0
141#if defined(CONFIG_CPU_HAS_LBT)
142 /* TM bit is always 0 if LBT not supported */
143 andi \tmp0, \tmp0, FPU_CSR_TM
144 beqz \tmp0, 1f
145 x86clrtm
1461:
147#endif
141 .endm
142
143 .macro sc_restore_fcsr base, tmp0
144 EX ld.w \tmp0, \base, 0
145 movgr2fcsr fcsr0, \tmp0
146 .endm
147
148 .macro sc_save_lsx base

--- 155 unchanged lines hidden (view full) ---

304SYM_FUNC_END(_save_fp)
305EXPORT_SYMBOL(_save_fp)
306
307/*
308 * Restore a thread's fp context.
309 */
310SYM_FUNC_START(_restore_fp)
311 fpu_restore_double a0 t1 # clobbers t1
148 .endm
149
150 .macro sc_restore_fcsr base, tmp0
151 EX ld.w \tmp0, \base, 0
152 movgr2fcsr fcsr0, \tmp0
153 .endm
154
155 .macro sc_save_lsx base

--- 155 unchanged lines hidden (view full) ---

311SYM_FUNC_END(_save_fp)
312EXPORT_SYMBOL(_save_fp)
313
314/*
315 * Restore a thread's fp context.
316 */
317SYM_FUNC_START(_restore_fp)
318 fpu_restore_double a0 t1 # clobbers t1
312 fpu_restore_csr a0 t1
319 fpu_restore_csr a0 t1 t2
313 fpu_restore_cc a0 t1 t2 # clobbers t1, t2
314 jr ra
315SYM_FUNC_END(_restore_fp)
316
317#ifdef CONFIG_CPU_HAS_LSX
318
319/*
320 * Save a thread's LSX vector context.

--- 199 unchanged lines hidden ---
320 fpu_restore_cc a0 t1 t2 # clobbers t1, t2
321 jr ra
322SYM_FUNC_END(_restore_fp)
323
324#ifdef CONFIG_CPU_HAS_LSX
325
326/*
327 * Save a thread's LSX vector context.

--- 199 unchanged lines hidden ---