cregit-Linux how code gets into the kernel

Release 4.11 tools/testing/selftests/powerpc/include/vmx_asm.h

/*
 * 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"

/* POS MUST BE 16 ALIGNED! */

#define PUSH_VMX(pos,reg) \
	li      reg,pos; \
        stvx    v20,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v21,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v22,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v23,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v24,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v25,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v26,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v27,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v28,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v29,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v30,reg,%r1; \
        addi    reg,reg,16; \
        stvx    v31,reg,%r1;

/* POS MUST BE 16 ALIGNED! */

#define POP_VMX(pos,reg) \
	li      reg,pos; \
        lvx     v20,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v21,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v22,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v23,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v24,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v25,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v26,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v27,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v28,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v29,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v30,reg,%r1; \
        addi    reg,reg,16; \
        lvx     v31,reg,%r1;

/*
 * Careful this will 'clobber' vmx (by design)
 * Don't call this from C
 */
FUNC_START(load_vmx)
	li	r5,0
	lvx	v20,r5,r3
	addi	r5,r5,16
	lvx	v21,r5,r3
	addi	r5,r5,16
	lvx	v22,r5,r3
	addi	r5,r5,16
	lvx	v23,r5,r3
	addi	r5,r5,16
	lvx	v24,r5,r3
	addi	r5,r5,16
	lvx	v25,r5,r3
	addi	r5,r5,16
	lvx	v26,r5,r3
	addi	r5,r5,16
	lvx	v27,r5,r3
	addi	r5,r5,16
	lvx	v28,r5,r3
	addi	r5,r5,16
	lvx	v29,r5,r3
	addi	r5,r5,16
	lvx	v30,r5,r3
	addi	r5,r5,16
	lvx	v31,r5,r3
	blr
FUNC_END(load_vmx)

Overall Contributors

PersonTokensPropCommitsCommitProp
Cyril Bur166100.00%1100.00%
Total166100.00%1100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.