Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Copyright 2015, Cyril Bur, IBM Corp.
0004  */
0005 
0006 #include "basic_asm.h"
0007 
0008 /*
0009  * Careful this will 'clobber' vsx (by design), VSX are always
0010  * volatile though so unlike vmx this isn't so much of an issue
0011  * Still should avoid calling from C
0012  */
0013 FUNC_START(load_vsx)
0014     li  r5,0
0015     lxvd2x  vs20,r5,r3
0016     addi    r5,r5,16
0017     lxvd2x  vs21,r5,r3
0018     addi    r5,r5,16
0019     lxvd2x  vs22,r5,r3
0020     addi    r5,r5,16
0021     lxvd2x  vs23,r5,r3
0022     addi    r5,r5,16
0023     lxvd2x  vs24,r5,r3
0024     addi    r5,r5,16
0025     lxvd2x  vs25,r5,r3
0026     addi    r5,r5,16
0027     lxvd2x  vs26,r5,r3
0028     addi    r5,r5,16
0029     lxvd2x  vs27,r5,r3
0030     addi    r5,r5,16
0031     lxvd2x  vs28,r5,r3
0032     addi    r5,r5,16
0033     lxvd2x  vs29,r5,r3
0034     addi    r5,r5,16
0035     lxvd2x  vs30,r5,r3
0036     addi    r5,r5,16
0037     lxvd2x  vs31,r5,r3
0038     blr
0039 FUNC_END(load_vsx)
0040 
0041 FUNC_START(store_vsx)
0042     li  r5,0
0043     stxvd2x vs20,r5,r3
0044     addi    r5,r5,16
0045     stxvd2x vs21,r5,r3
0046     addi    r5,r5,16
0047     stxvd2x vs22,r5,r3
0048     addi    r5,r5,16
0049     stxvd2x vs23,r5,r3
0050     addi    r5,r5,16
0051     stxvd2x vs24,r5,r3
0052     addi    r5,r5,16
0053     stxvd2x vs25,r5,r3
0054     addi    r5,r5,16
0055     stxvd2x vs26,r5,r3
0056     addi    r5,r5,16
0057     stxvd2x vs27,r5,r3
0058     addi    r5,r5,16
0059     stxvd2x vs28,r5,r3
0060     addi    r5,r5,16
0061     stxvd2x vs29,r5,r3
0062     addi    r5,r5,16
0063     stxvd2x vs30,r5,r3
0064     addi    r5,r5,16
0065     stxvd2x vs31,r5,r3
0066     blr
0067 FUNC_END(store_vsx)