brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · ad9fb1b Raw
93 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Copyright 2015, Cyril Bur, IBM Corp.4 */5 6#include "basic_asm.h"7 8/* POS MUST BE 16 ALIGNED! */9#define PUSH_VMX(pos,reg) \10	li	reg,pos; \11	stvx	v20,reg,%r1; \12	addi	reg,reg,16; \13	stvx	v21,reg,%r1; \14	addi	reg,reg,16; \15	stvx	v22,reg,%r1; \16	addi	reg,reg,16; \17	stvx	v23,reg,%r1; \18	addi	reg,reg,16; \19	stvx	v24,reg,%r1; \20	addi	reg,reg,16; \21	stvx	v25,reg,%r1; \22	addi	reg,reg,16; \23	stvx	v26,reg,%r1; \24	addi	reg,reg,16; \25	stvx	v27,reg,%r1; \26	addi	reg,reg,16; \27	stvx	v28,reg,%r1; \28	addi	reg,reg,16; \29	stvx	v29,reg,%r1; \30	addi	reg,reg,16; \31	stvx	v30,reg,%r1; \32	addi	reg,reg,16; \33	stvx	v31,reg,%r1;34 35/* POS MUST BE 16 ALIGNED! */36#define POP_VMX(pos,reg) \37	li	reg,pos; \38	lvx	v20,reg,%r1; \39	addi	reg,reg,16; \40	lvx	v21,reg,%r1; \41	addi	reg,reg,16; \42	lvx	v22,reg,%r1; \43	addi	reg,reg,16; \44	lvx	v23,reg,%r1; \45	addi	reg,reg,16; \46	lvx	v24,reg,%r1; \47	addi	reg,reg,16; \48	lvx	v25,reg,%r1; \49	addi	reg,reg,16; \50	lvx	v26,reg,%r1; \51	addi	reg,reg,16; \52	lvx	v27,reg,%r1; \53	addi	reg,reg,16; \54	lvx	v28,reg,%r1; \55	addi	reg,reg,16; \56	lvx	v29,reg,%r1; \57	addi	reg,reg,16; \58	lvx	v30,reg,%r1; \59	addi	reg,reg,16; \60	lvx	v31,reg,%r1;61 62/*63 * Careful this will 'clobber' vmx (by design)64 * Don't call this from C65 */66FUNC_START(load_vmx)67	li	r5,068	lvx	v20,r5,r369	addi	r5,r5,1670	lvx	v21,r5,r371	addi	r5,r5,1672	lvx	v22,r5,r373	addi	r5,r5,1674	lvx	v23,r5,r375	addi	r5,r5,1676	lvx	v24,r5,r377	addi	r5,r5,1678	lvx	v25,r5,r379	addi	r5,r5,1680	lvx	v26,r5,r381	addi	r5,r5,1682	lvx	v27,r5,r383	addi	r5,r5,1684	lvx	v28,r5,r385	addi	r5,r5,1686	lvx	v29,r5,r387	addi	r5,r5,1688	lvx	v30,r5,r389	addi	r5,r5,1690	lvx	v31,r5,r391	blr92FUNC_END(load_vmx)93