18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright 2015, Cyril Bur, IBM Corp. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include "basic_asm.h" 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/* 98c2ecf20Sopenharmony_ci * Careful this will 'clobber' vsx (by design), VSX are always 108c2ecf20Sopenharmony_ci * volatile though so unlike vmx this isn't so much of an issue 118c2ecf20Sopenharmony_ci * Still should avoid calling from C 128c2ecf20Sopenharmony_ci */ 138c2ecf20Sopenharmony_ciFUNC_START(load_vsx) 148c2ecf20Sopenharmony_ci li r5,0 158c2ecf20Sopenharmony_ci lxvd2x vs20,r5,r3 168c2ecf20Sopenharmony_ci addi r5,r5,16 178c2ecf20Sopenharmony_ci lxvd2x vs21,r5,r3 188c2ecf20Sopenharmony_ci addi r5,r5,16 198c2ecf20Sopenharmony_ci lxvd2x vs22,r5,r3 208c2ecf20Sopenharmony_ci addi r5,r5,16 218c2ecf20Sopenharmony_ci lxvd2x vs23,r5,r3 228c2ecf20Sopenharmony_ci addi r5,r5,16 238c2ecf20Sopenharmony_ci lxvd2x vs24,r5,r3 248c2ecf20Sopenharmony_ci addi r5,r5,16 258c2ecf20Sopenharmony_ci lxvd2x vs25,r5,r3 268c2ecf20Sopenharmony_ci addi r5,r5,16 278c2ecf20Sopenharmony_ci lxvd2x vs26,r5,r3 288c2ecf20Sopenharmony_ci addi r5,r5,16 298c2ecf20Sopenharmony_ci lxvd2x vs27,r5,r3 308c2ecf20Sopenharmony_ci addi r5,r5,16 318c2ecf20Sopenharmony_ci lxvd2x vs28,r5,r3 328c2ecf20Sopenharmony_ci addi r5,r5,16 338c2ecf20Sopenharmony_ci lxvd2x vs29,r5,r3 348c2ecf20Sopenharmony_ci addi r5,r5,16 358c2ecf20Sopenharmony_ci lxvd2x vs30,r5,r3 368c2ecf20Sopenharmony_ci addi r5,r5,16 378c2ecf20Sopenharmony_ci lxvd2x vs31,r5,r3 388c2ecf20Sopenharmony_ci blr 398c2ecf20Sopenharmony_ciFUNC_END(load_vsx) 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciFUNC_START(store_vsx) 428c2ecf20Sopenharmony_ci li r5,0 438c2ecf20Sopenharmony_ci stxvd2x vs20,r5,r3 448c2ecf20Sopenharmony_ci addi r5,r5,16 458c2ecf20Sopenharmony_ci stxvd2x vs21,r5,r3 468c2ecf20Sopenharmony_ci addi r5,r5,16 478c2ecf20Sopenharmony_ci stxvd2x vs22,r5,r3 488c2ecf20Sopenharmony_ci addi r5,r5,16 498c2ecf20Sopenharmony_ci stxvd2x vs23,r5,r3 508c2ecf20Sopenharmony_ci addi r5,r5,16 518c2ecf20Sopenharmony_ci stxvd2x vs24,r5,r3 528c2ecf20Sopenharmony_ci addi r5,r5,16 538c2ecf20Sopenharmony_ci stxvd2x vs25,r5,r3 548c2ecf20Sopenharmony_ci addi r5,r5,16 558c2ecf20Sopenharmony_ci stxvd2x vs26,r5,r3 568c2ecf20Sopenharmony_ci addi r5,r5,16 578c2ecf20Sopenharmony_ci stxvd2x vs27,r5,r3 588c2ecf20Sopenharmony_ci addi r5,r5,16 598c2ecf20Sopenharmony_ci stxvd2x vs28,r5,r3 608c2ecf20Sopenharmony_ci addi r5,r5,16 618c2ecf20Sopenharmony_ci stxvd2x vs29,r5,r3 628c2ecf20Sopenharmony_ci addi r5,r5,16 638c2ecf20Sopenharmony_ci stxvd2x vs30,r5,r3 648c2ecf20Sopenharmony_ci addi r5,r5,16 658c2ecf20Sopenharmony_ci stxvd2x vs31,r5,r3 668c2ecf20Sopenharmony_ci blr 678c2ecf20Sopenharmony_ciFUNC_END(store_vsx) 68