72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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)
 |