Commit 15ec3997 authored by Simon Guo's avatar Simon Guo Committed by Michael Ellerman

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: default avatarSimon Guo <wei.guo.simon@gmail.com>
[mpe: Reworked to move the headers only]
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent efe71a67
...@@ -8,7 +8,7 @@ ifeq ($(ARCH),powerpc) ...@@ -8,7 +8,7 @@ ifeq ($(ARCH),powerpc)
GIT_VERSION = $(shell git describe --always --long --dirty || echo "unknown") 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 export CFLAGS
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#ifdef __powerpc__ #ifdef __powerpc__
#include <altivec.h> #include <altivec.h>
#endif #endif
#include "../utils.h" #include "utils.h"
static unsigned int timeout = 30; static unsigned int timeout = 30;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdbool.h> #include <stdbool.h>
#include "../utils.h" #include "utils.h"
#define MAX_LEN 8192 #define MAX_LEN 8192
#define MAX_OFFSET 16 #define MAX_OFFSET 16
......
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
#include <ppc-asm.h> #include <ppc-asm.h>
#include <asm/unistd.h> #include <asm/unistd.h>
#define LOAD_REG_IMMEDIATE(reg,expr) \ #define LOAD_REG_IMMEDIATE(reg, expr) \
lis reg,(expr)@highest; \ lis reg, (expr)@highest; \
ori reg,reg,(expr)@higher; \ ori reg, reg, (expr)@higher; \
rldicr reg,reg,32,31; \ rldicr reg, reg, 32, 31; \
oris reg,reg,(expr)@high; \ oris reg, reg, (expr)@high; \
ori reg,reg,(expr)@l; ori reg, reg, (expr)@l;
/* /*
* Note: These macros assume that variables being stored on the stack are * Note: These macros assume that variables being stored on the stack are
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
#define STACK_FRAME_MIN_SIZE 32 #define STACK_FRAME_MIN_SIZE 32
#define STACK_FRAME_TOC_POS 24 #define STACK_FRAME_TOC_POS 24
#define __STACK_FRAME_PARAM(_param) (32 + ((_param)*8)) #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 #else
#define STACK_FRAME_MIN_SIZE 112 #define STACK_FRAME_MIN_SIZE 112
#define STACK_FRAME_TOC_POS 40 #define STACK_FRAME_TOC_POS 40
...@@ -30,14 +31,16 @@ ...@@ -30,14 +31,16 @@
* Caveat: if a function passed more than 8 doublewords, the caller will have * Caveat: if a function passed more than 8 doublewords, the caller will have
* made more space... which would render the 112 incorrect. * 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 #endif
/* Parameter x saved to the stack */ /* Parameter x saved to the stack */
#define STACK_FRAME_PARAM(var) __STACK_FRAME_PARAM(var) #define STACK_FRAME_PARAM(var) __STACK_FRAME_PARAM(var)
/* Local variable x saved to the stack after x parameters */ /* 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_LR_POS 16
#define STACK_FRAME_CR_POS 8 #define STACK_FRAME_CR_POS 8
...@@ -53,18 +56,18 @@ ...@@ -53,18 +56,18 @@
*/ */
#define PUSH_BASIC_STACK(_extra) \ #define PUSH_BASIC_STACK(_extra) \
mflr r0; \ mflr r0; \
std r0,STACK_FRAME_LR_POS(%r1); \ std r0, STACK_FRAME_LR_POS(%r1); \
stdu %r1,-(_extra + STACK_FRAME_MIN_SIZE)(%r1); \ stdu %r1, -(_extra + STACK_FRAME_MIN_SIZE)(%r1); \
mfcr r0; \ mfcr r0; \
stw r0,STACK_FRAME_CR_POS(%r1); \ stw r0, STACK_FRAME_CR_POS(%r1); \
std %r2,STACK_FRAME_TOC_POS(%r1); std %r2, STACK_FRAME_TOC_POS(%r1);
#define POP_BASIC_STACK(_extra) \ #define POP_BASIC_STACK(_extra) \
ld %r2,STACK_FRAME_TOC_POS(%r1); \ ld %r2, STACK_FRAME_TOC_POS(%r1); \
lwz r0,STACK_FRAME_CR_POS(%r1); \ lwz r0, STACK_FRAME_CR_POS(%r1); \
mtcr r0; \ mtcr r0; \
addi %r1,%r1,(_extra + STACK_FRAME_MIN_SIZE); \ addi %r1, %r1, (_extra + STACK_FRAME_MIN_SIZE); \
ld r0,STACK_FRAME_LR_POS(%r1); \ ld r0, STACK_FRAME_LR_POS(%r1); \
mtlr r0; mtlr r0;
#endif /* _SELFTESTS_POWERPC_BASIC_ASM_H */ #endif /* _SELFTESTS_POWERPC_BASIC_ASM_H */
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#include "../basic_asm.h" #include "basic_asm.h"
#include "../fpu_asm.h" #include "fpu_asm.h"
FUNC_START(check_fpu) FUNC_START(check_fpu)
mr r4,r3 mr r4,r3
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#include "../basic_asm.h" #include "basic_asm.h"
#include "../vmx_asm.h" #include "vmx_asm.h"
# Should be safe from C, only touches r4, r5 and v0,v1,v2 # Should be safe from C, only touches r4, r5 and v0,v1,v2
FUNC_START(check_vmx) FUNC_START(check_vmx)
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#include "../basic_asm.h" #include "basic_asm.h"
#include "../vsx_asm.h" #include "vsx_asm.h"
#long check_vsx(vector int *r3); #long check_vsx(vector int *r3);
#This function wraps storeing VSX regs to the end of an array and a #This function wraps storeing VSX regs to the end of an array and a
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* 2 of the License, or (at your option) any later version. * 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); */ /* long signal_self(pid_t pid, int sig); */
FUNC_START(signal_self) FUNC_START(signal_self)
......
#include <malloc.h> #include <malloc.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "../utils.h" #include "utils.h"
#define SIZE 256 #define SIZE 256
#define ITERATIONS 10000 #define ITERATIONS 10000
......
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
* 2 of the License, or (at your option) any later version. * 2 of the License, or (at your option) any later version.
*/ */
#include "../basic_asm.h" #include "basic_asm.h"
#include "../gpr_asm.h" #include "gpr_asm.h"
#include "../fpu_asm.h" #include "fpu_asm.h"
#include "../vmx_asm.h" #include "vmx_asm.h"
#include "../vsx_asm.h" #include "vsx_asm.h"
/* /*
* Large caveat here being that the caller cannot expect the * Large caveat here being that the caller cannot expect the
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include <asm/cputable.h> #include <asm/cputable.h>
#include <stdbool.h> #include <stdbool.h>
#include "../utils.h" #include "utils.h"
static inline bool have_htm(void) static inline bool have_htm(void)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment