Vector register save and restore procedures

The vector save and restore functions are provided by the system (libc) as an aid to language compilers.

The vector save and restore functions listed below are provided by the system (libc) as an aid to language compilers.

On entry, r0 must contain the 16-byte aligned address just above the vector save area. r0 is left unchanged, but r12 is modified.
Item Description

_savev20:

addi

r12,

r0,

-192
 
 

stvx

v20,

r12,

r0

# save v20

_savev21:

addi

r12,

r0,

-176
 
 

stvx

v21,

r12,

r0

# save v21

_savev22:

addi

r12,

r0,

-160
 
 

stvx

v22,

r12,

r0

# save v22

_savev23:

addi

r12,

r0,

-144
 
 

stvx

v23,

r12,

r0

# save v23

_savev24:

addi

r12,

r0,

-128
 
 

stvx

v24,

r12,

r0

# save v24

_savev25:

addi

r12,

r0,

-112
 
 

stvx

v25,

r12,

r0

# save v25

_savev26:

addi

r12,

r0,

-96
 
 

stvx

v26,

r12,

r0

# save v26

_savev27:

addi

r12, 

r0,

-80
 
 

stvx

v27, 

r12,

r0

# save v27

_savev28:

addi

r12,

r0,

-64
 
 

stvx

v28,

r12,

 r0

# save v28

_savev29:

addi

r12,

r0,

-48
 
 

stvx

v29, 

r12,

 r0

# save v29

_savev30:  

addi

r12,

r0,

-32
 
 

stvx

v30,

r12,

 r0

# save v30

_savev31:

addi

r12,

r0,

-16
 
 

stvx

v31,

r12,

r0

# save v31



br






 
           

_restv20:

addi

r12,

r0,

-192
 
 

lvx

v20,

r12,

r0

# restore v20

_restv21:

addi

r12,

r0,

-176
 
 

lvx

v21,

r12,

r0	

# restore v21

_restv22:

addi

r12,

r0,

-160
 
 

lvx

v22,

r12,

 r0	

# restore v22

_restv23:

addi

r12,

r0,

-144
 
 

lvx

v23,

r12,

r0

# restore v23

_restv24:

addi

r12,

r0,

-128
 
 

lvx

v24,

r12, 

r0

# restore v24

_restv25:

addi

r12,

r0,

-112
 
 

lvx

v25,

 r12,

 r0	

# restore v25

_restv26:

addi

r12,

r0,

-96
 
 

lvx

v26,

r12,

r0

# restore v26

_restv27:

addi

r12,

r0,

-80
 
 

lvx

v27,

r12,

r0

# restore v27

_restv28:

addi

r12,

r0,

-64
 
 

lvx

v28,

r12,

r0

# restore v28

_restv29:

addi

r12,

r0,

-48
 
 

lvx

v29,

r12,

 r0

# restore v29

_restv30:

addi

r12,

r0,

-32
 
 

lvx

v30,

r12,

 r0

# restore v30

_restv31:

addi

r12,

r0,

-16
 
 

lvx

v31,

r12,

r0

# restore v31



br