162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 2015, Cyril Bur, IBM Corp. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include "basic_asm.h" 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/* 962306a36Sopenharmony_ci * Careful this will 'clobber' vsx (by design), VSX are always 1062306a36Sopenharmony_ci * volatile though so unlike vmx this isn't so much of an issue 1162306a36Sopenharmony_ci * Still should avoid calling from C 1262306a36Sopenharmony_ci */ 1362306a36Sopenharmony_ciFUNC_START(load_vsx) 1462306a36Sopenharmony_ci li r5,0 1562306a36Sopenharmony_ci lxvd2x vs20,r5,r3 1662306a36Sopenharmony_ci addi r5,r5,16 1762306a36Sopenharmony_ci lxvd2x vs21,r5,r3 1862306a36Sopenharmony_ci addi r5,r5,16 1962306a36Sopenharmony_ci lxvd2x vs22,r5,r3 2062306a36Sopenharmony_ci addi r5,r5,16 2162306a36Sopenharmony_ci lxvd2x vs23,r5,r3 2262306a36Sopenharmony_ci addi r5,r5,16 2362306a36Sopenharmony_ci lxvd2x vs24,r5,r3 2462306a36Sopenharmony_ci addi r5,r5,16 2562306a36Sopenharmony_ci lxvd2x vs25,r5,r3 2662306a36Sopenharmony_ci addi r5,r5,16 2762306a36Sopenharmony_ci lxvd2x vs26,r5,r3 2862306a36Sopenharmony_ci addi r5,r5,16 2962306a36Sopenharmony_ci lxvd2x vs27,r5,r3 3062306a36Sopenharmony_ci addi r5,r5,16 3162306a36Sopenharmony_ci lxvd2x vs28,r5,r3 3262306a36Sopenharmony_ci addi r5,r5,16 3362306a36Sopenharmony_ci lxvd2x vs29,r5,r3 3462306a36Sopenharmony_ci addi r5,r5,16 3562306a36Sopenharmony_ci lxvd2x vs30,r5,r3 3662306a36Sopenharmony_ci addi r5,r5,16 3762306a36Sopenharmony_ci lxvd2x vs31,r5,r3 3862306a36Sopenharmony_ci blr 3962306a36Sopenharmony_ciFUNC_END(load_vsx) 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciFUNC_START(store_vsx) 4262306a36Sopenharmony_ci li r5,0 4362306a36Sopenharmony_ci stxvd2x vs20,r5,r3 4462306a36Sopenharmony_ci addi r5,r5,16 4562306a36Sopenharmony_ci stxvd2x vs21,r5,r3 4662306a36Sopenharmony_ci addi r5,r5,16 4762306a36Sopenharmony_ci stxvd2x vs22,r5,r3 4862306a36Sopenharmony_ci addi r5,r5,16 4962306a36Sopenharmony_ci stxvd2x vs23,r5,r3 5062306a36Sopenharmony_ci addi r5,r5,16 5162306a36Sopenharmony_ci stxvd2x vs24,r5,r3 5262306a36Sopenharmony_ci addi r5,r5,16 5362306a36Sopenharmony_ci stxvd2x vs25,r5,r3 5462306a36Sopenharmony_ci addi r5,r5,16 5562306a36Sopenharmony_ci stxvd2x vs26,r5,r3 5662306a36Sopenharmony_ci addi r5,r5,16 5762306a36Sopenharmony_ci stxvd2x vs27,r5,r3 5862306a36Sopenharmony_ci addi r5,r5,16 5962306a36Sopenharmony_ci stxvd2x vs28,r5,r3 6062306a36Sopenharmony_ci addi r5,r5,16 6162306a36Sopenharmony_ci stxvd2x vs29,r5,r3 6262306a36Sopenharmony_ci addi r5,r5,16 6362306a36Sopenharmony_ci stxvd2x vs30,r5,r3 6462306a36Sopenharmony_ci addi r5,r5,16 6562306a36Sopenharmony_ci stxvd2x vs31,r5,r3 6662306a36Sopenharmony_ci blr 6762306a36Sopenharmony_ciFUNC_END(store_vsx) 68