0001
0002
0003
0004
0005
0006 #include "basic_asm.h"
0007
0008
0009 #define PUSH_VMX(pos,reg) \
0010 li reg,pos; \
0011 stvx v20,reg,%r1; \
0012 addi reg,reg,16; \
0013 stvx v21,reg,%r1; \
0014 addi reg,reg,16; \
0015 stvx v22,reg,%r1; \
0016 addi reg,reg,16; \
0017 stvx v23,reg,%r1; \
0018 addi reg,reg,16; \
0019 stvx v24,reg,%r1; \
0020 addi reg,reg,16; \
0021 stvx v25,reg,%r1; \
0022 addi reg,reg,16; \
0023 stvx v26,reg,%r1; \
0024 addi reg,reg,16; \
0025 stvx v27,reg,%r1; \
0026 addi reg,reg,16; \
0027 stvx v28,reg,%r1; \
0028 addi reg,reg,16; \
0029 stvx v29,reg,%r1; \
0030 addi reg,reg,16; \
0031 stvx v30,reg,%r1; \
0032 addi reg,reg,16; \
0033 stvx v31,reg,%r1;
0034
0035
0036 #define POP_VMX(pos,reg) \
0037 li reg,pos; \
0038 lvx v20,reg,%r1; \
0039 addi reg,reg,16; \
0040 lvx v21,reg,%r1; \
0041 addi reg,reg,16; \
0042 lvx v22,reg,%r1; \
0043 addi reg,reg,16; \
0044 lvx v23,reg,%r1; \
0045 addi reg,reg,16; \
0046 lvx v24,reg,%r1; \
0047 addi reg,reg,16; \
0048 lvx v25,reg,%r1; \
0049 addi reg,reg,16; \
0050 lvx v26,reg,%r1; \
0051 addi reg,reg,16; \
0052 lvx v27,reg,%r1; \
0053 addi reg,reg,16; \
0054 lvx v28,reg,%r1; \
0055 addi reg,reg,16; \
0056 lvx v29,reg,%r1; \
0057 addi reg,reg,16; \
0058 lvx v30,reg,%r1; \
0059 addi reg,reg,16; \
0060 lvx v31,reg,%r1;
0061
0062
0063
0064
0065
0066 FUNC_START(load_vmx)
0067 li r5,0
0068 lvx v20,r5,r3
0069 addi r5,r5,16
0070 lvx v21,r5,r3
0071 addi r5,r5,16
0072 lvx v22,r5,r3
0073 addi r5,r5,16
0074 lvx v23,r5,r3
0075 addi r5,r5,16
0076 lvx v24,r5,r3
0077 addi r5,r5,16
0078 lvx v25,r5,r3
0079 addi r5,r5,16
0080 lvx v26,r5,r3
0081 addi r5,r5,16
0082 lvx v27,r5,r3
0083 addi r5,r5,16
0084 lvx v28,r5,r3
0085 addi r5,r5,16
0086 lvx v29,r5,r3
0087 addi r5,r5,16
0088 lvx v30,r5,r3
0089 addi r5,r5,16
0090 lvx v31,r5,r3
0091 blr
0092 FUNC_END(load_vmx)