selftests/powerpc: Move shared headers into new include dir

There are some functions, especially register related, which can
be shared across multiple selftests/powerpc test directories.

This patch creates a new include directory to store those shared
files, so that the file layout becomes more neat.

Signed-off-by: Simon Guo <wei.guo.simon@gmail.com>
[mpe: Reworked to move the headers only]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Simon Guo 2016-09-30 10:32:51 +08:00 committed by Michael Ellerman
parent efe71a67b5
commit 15ec3997aa
19 changed files with 37 additions and 34 deletions

View File

@ -8,7 +8,7 @@ ifeq ($(ARCH),powerpc)
GIT_VERSION = $(shell git describe --always --long --dirty || echo "unknown")
CFLAGS := -std=gnu99 -Wall -O2 -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(CURDIR) $(CFLAGS)
CFLAGS := -std=gnu99 -Wall -O2 -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(CURDIR)/include $(CFLAGS)
export CFLAGS

View File

@ -28,7 +28,7 @@
#ifdef __powerpc__
#include <altivec.h>
#endif
#include "../utils.h"
#include "utils.h"
static unsigned int timeout = 30;

View File

@ -3,7 +3,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include "../utils.h"
#include "utils.h"
#define MAX_LEN 8192
#define MAX_OFFSET 16

View File

@ -4,12 +4,12 @@
#include <ppc-asm.h>
#include <asm/unistd.h>
#define LOAD_REG_IMMEDIATE(reg,expr) \
lis reg,(expr)@highest; \
ori reg,reg,(expr)@higher; \
rldicr reg,reg,32,31; \
oris reg,reg,(expr)@high; \
ori reg,reg,(expr)@l;
#define LOAD_REG_IMMEDIATE(reg, expr) \
lis reg, (expr)@highest; \
ori reg, reg, (expr)@higher; \
rldicr reg, reg, 32, 31; \
oris reg, reg, (expr)@high; \
ori reg, reg, (expr)@l;
/*
* Note: These macros assume that variables being stored on the stack are
@ -20,7 +20,8 @@
#define STACK_FRAME_MIN_SIZE 32
#define STACK_FRAME_TOC_POS 24
#define __STACK_FRAME_PARAM(_param) (32 + ((_param)*8))
#define __STACK_FRAME_LOCAL(_num_params,_var_num) ((STACK_FRAME_PARAM(_num_params)) + ((_var_num)*8))
#define __STACK_FRAME_LOCAL(_num_params, _var_num) \
((STACK_FRAME_PARAM(_num_params)) + ((_var_num)*8))
#else
#define STACK_FRAME_MIN_SIZE 112
#define STACK_FRAME_TOC_POS 40
@ -30,14 +31,16 @@
* Caveat: if a function passed more than 8 doublewords, the caller will have
* made more space... which would render the 112 incorrect.
*/
#define __STACK_FRAME_LOCAL(_num_params,_var_num) (112 + ((_var_num)*8))
#define __STACK_FRAME_LOCAL(_num_params, _var_num) \
(112 + ((_var_num)*8))
#endif
/* Parameter x saved to the stack */
#define STACK_FRAME_PARAM(var) __STACK_FRAME_PARAM(var)
/* Local variable x saved to the stack after x parameters */
#define STACK_FRAME_LOCAL(num_params,var) __STACK_FRAME_LOCAL(num_params,var)
#define STACK_FRAME_LOCAL(num_params, var) \
__STACK_FRAME_LOCAL(num_params, var)
#define STACK_FRAME_LR_POS 16
#define STACK_FRAME_CR_POS 8
@ -53,18 +56,18 @@
*/
#define PUSH_BASIC_STACK(_extra) \
mflr r0; \
std r0,STACK_FRAME_LR_POS(%r1); \
stdu %r1,-(_extra + STACK_FRAME_MIN_SIZE)(%r1); \
std r0, STACK_FRAME_LR_POS(%r1); \
stdu %r1, -(_extra + STACK_FRAME_MIN_SIZE)(%r1); \
mfcr r0; \
stw r0,STACK_FRAME_CR_POS(%r1); \
std %r2,STACK_FRAME_TOC_POS(%r1);
stw r0, STACK_FRAME_CR_POS(%r1); \
std %r2, STACK_FRAME_TOC_POS(%r1);
#define POP_BASIC_STACK(_extra) \
ld %r2,STACK_FRAME_TOC_POS(%r1); \
lwz r0,STACK_FRAME_CR_POS(%r1); \
ld %r2, STACK_FRAME_TOC_POS(%r1); \
lwz r0, STACK_FRAME_CR_POS(%r1); \
mtcr r0; \
addi %r1,%r1,(_extra + STACK_FRAME_MIN_SIZE); \
ld r0,STACK_FRAME_LR_POS(%r1); \
addi %r1, %r1, (_extra + STACK_FRAME_MIN_SIZE); \
ld r0, STACK_FRAME_LR_POS(%r1); \
mtlr r0;
#endif /* _SELFTESTS_POWERPC_BASIC_ASM_H */

View File

@ -7,8 +7,8 @@
* 2 of the License, or (at your option) any later version.
*/
#include "../basic_asm.h"
#include "../fpu_asm.h"
#include "basic_asm.h"
#include "fpu_asm.h"
FUNC_START(check_fpu)
mr r4,r3

View File

@ -7,8 +7,8 @@
* 2 of the License, or (at your option) any later version.
*/
#include "../basic_asm.h"
#include "../vmx_asm.h"
#include "basic_asm.h"
#include "vmx_asm.h"
# Should be safe from C, only touches r4, r5 and v0,v1,v2
FUNC_START(check_vmx)

View File

@ -7,8 +7,8 @@
* 2 of the License, or (at your option) any later version.
*/
#include "../basic_asm.h"
#include "../vsx_asm.h"
#include "basic_asm.h"
#include "vsx_asm.h"
#long check_vsx(vector int *r3);
#This function wraps storeing VSX regs to the end of an array and a

View File

@ -7,7 +7,7 @@
* 2 of the License, or (at your option) any later version.
*/
#include "../basic_asm.h"
#include "basic_asm.h"
/* long signal_self(pid_t pid, int sig); */
FUNC_START(signal_self)

View File

@ -1,7 +1,7 @@
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include "../utils.h"
#include "utils.h"
#define SIZE 256
#define ITERATIONS 10000

View File

@ -7,11 +7,11 @@
* 2 of the License, or (at your option) any later version.
*/
#include "../basic_asm.h"
#include "../gpr_asm.h"
#include "../fpu_asm.h"
#include "../vmx_asm.h"
#include "../vsx_asm.h"
#include "basic_asm.h"
#include "gpr_asm.h"
#include "fpu_asm.h"
#include "vmx_asm.h"
#include "vsx_asm.h"
/*
* Large caveat here being that the caller cannot expect the

View File

@ -10,7 +10,7 @@
#include <asm/cputable.h>
#include <stdbool.h>
#include "../utils.h"
#include "utils.h"
static inline bool have_htm(void)
{