Commit aecfd680 authored by Benjamin Gray's avatar Benjamin Gray Committed by Michael Ellerman
Browse files

selftests/powerpc: Use mfspr/mtspr macros



No need to write inline asm for mtspr/mfspr, we have macros for this
in reg.h

Signed-off-by: default avatarBenjamin Gray <bgray@linux.ibm.com>
Reviewed-by: default avatarAndrew Donnellan <ajd@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221128041948.58339-2-bgray@linux.ibm.com
parent 5921eb36
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <sys/stat.h>
#include <sys/wait.h>

#include "reg.h"
#include "utils.h"

#define THREADS		100	/* Max threads */
@@ -41,31 +42,23 @@
/* Prilvilege state DSCR access */
inline unsigned long get_dscr(void)
{
	unsigned long ret;

	asm volatile("mfspr %0,%1" : "=r" (ret) : "i" (SPRN_DSCR_PRIV));

	return ret;
	return mfspr(SPRN_DSCR_PRIV);
}

inline void set_dscr(unsigned long val)
{
	asm volatile("mtspr %1,%0" : : "r" (val), "i" (SPRN_DSCR_PRIV));
	mtspr(SPRN_DSCR_PRIV, val);
}

/* Problem state DSCR access */
inline unsigned long get_dscr_usr(void)
{
	unsigned long ret;

	asm volatile("mfspr %0,%1" : "=r" (ret) : "i" (SPRN_DSCR));

	return ret;
	return mfspr(SPRN_DSCR);
}

inline void set_dscr_usr(unsigned long val)
{
	asm volatile("mtspr %1,%0" : : "r" (val), "i" (SPRN_DSCR));
	mtspr(SPRN_DSCR, val);
}

/* Default DSCR access */
+2 −4
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <sys/syscall.h>
#include <linux/limits.h>
#include "ptrace.h"
#include "reg.h"

#define SPRN_PVR	0x11F
#define PVR_8xx		0x00500000
@@ -620,10 +621,7 @@ static int ptrace_hwbreak(void)

int main(int argc, char **argv, char **envp)
{
	int pvr = 0;
	asm __volatile__ ("mfspr %0,%1" : "=r"(pvr) : "i"(SPRN_PVR));
	if (pvr == PVR_8xx)
		is_8xx = true;
	is_8xx = mfspr(SPRN_PVR) == PVR_8xx;

	return test_harness(ptrace_hwbreak, "ptrace-hwbreak");
}
+1 −4
Original line number Diff line number Diff line
@@ -745,10 +745,7 @@ int show_tm_spr(pid_t child, struct tm_spr_regs *out)
/* Analyse TEXASR after TM failure */
inline unsigned long get_tfiar(void)
{
	unsigned long ret;

	asm volatile("mfspr %0,%1" : "=r" (ret) : "i" (SPRN_TFIAR));
	return ret;
	return mfspr(SPRN_TFIAR);
}

void analyse_texasr(unsigned long texasr)
+2 −1
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
#include <string.h>
#include <stdio.h>
#include <sys/utsname.h>
#include "reg.h"
#include "utils.h"
#include "flush_utils.h"

@@ -79,5 +80,5 @@ void set_dscr(unsigned long val)
		init = 1;
	}

	asm volatile("mtspr %1,%0" : : "r" (val), "i" (SPRN_DSCR));
	mtspr(SPRN_DSCR, val);
}