hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright 2015, Cyril Bur, IBM Corp.
 */
 
#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)