| /* | |
| * Copyright 2015, Cyril Bur, IBM Corp. | |
| * | |
| * This program is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU General Public License | |
| * as published by the Free Software Foundation; either version | |
| * 2 of the License, or (at your option) any later version. | |
| */ | |
| #include "basic_asm.h" | |
| /* | |
| * Careful this will 'clobber' vsx (by design), VSX are always | |
| * volatile though so unlike vmx this isn't so much of an issue | |
| * Still should avoid calling from C | |
| */ | |
| FUNC_START(load_vsx) | |
| li r5,0 | |
| lxvd2x vs20,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs21,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs22,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs23,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs24,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs25,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs26,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs27,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs28,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs29,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs30,r5,r3 | |
| addi r5,r5,16 | |
| lxvd2x vs31,r5,r3 | |
| blr | |
| FUNC_END(load_vsx) | |
| FUNC_START(store_vsx) | |
| li r5,0 | |
| stxvd2x vs20,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs21,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs22,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs23,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs24,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs25,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs26,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs27,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs28,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs29,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs30,r5,r3 | |
| addi r5,r5,16 | |
| stxvd2x vs31,r5,r3 | |
| blr | |
| FUNC_END(store_vsx) |