parisc: move virt_map macro to assembly.h
This macro will also be used by the TOC code, so move it into asm/assembly.h to avoid duplication. Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
8e0ba125c2
commit
b5f73da500
|
@ -78,6 +78,7 @@
|
|||
#include <asm/types.h>
|
||||
|
||||
#include <asm/asmregs.h>
|
||||
#include <asm/psw.h>
|
||||
|
||||
sp = 30
|
||||
gp = 27
|
||||
|
@ -504,6 +505,30 @@
|
|||
nop /* 7 */
|
||||
.endm
|
||||
|
||||
/* Switch to virtual mapping, trashing only %r1 */
|
||||
.macro virt_map
|
||||
/* pcxt_ssm_bug */
|
||||
rsm PSW_SM_I, %r0 /* barrier for "Relied upon Translation */
|
||||
mtsp %r0, %sr4
|
||||
mtsp %r0, %sr5
|
||||
mtsp %r0, %sr6
|
||||
tovirt_r1 %r29
|
||||
load32 KERNEL_PSW, %r1
|
||||
|
||||
rsm PSW_SM_QUIET,%r0 /* second "heavy weight" ctl op */
|
||||
mtctl %r0, %cr17 /* Clear IIASQ tail */
|
||||
mtctl %r0, %cr17 /* Clear IIASQ head */
|
||||
mtctl %r1, %ipsw
|
||||
load32 4f, %r1
|
||||
mtctl %r1, %cr18 /* Set IIAOQ tail */
|
||||
ldo 4(%r1), %r1
|
||||
mtctl %r1, %cr18 /* Set IIAOQ head */
|
||||
rfir
|
||||
nop
|
||||
4:
|
||||
.endm
|
||||
|
||||
|
||||
/*
|
||||
* ASM_EXCEPTIONTABLE_ENTRY
|
||||
*
|
||||
|
|
|
@ -51,30 +51,6 @@
|
|||
extrd,u \spc,(64 - (SPACEID_SHIFT)),32,\prot
|
||||
.endm
|
||||
#endif
|
||||
|
||||
/* Switch to virtual mapping, trashing only %r1 */
|
||||
.macro virt_map
|
||||
/* pcxt_ssm_bug */
|
||||
rsm PSW_SM_I, %r0 /* barrier for "Relied upon Translation */
|
||||
mtsp %r0, %sr4
|
||||
mtsp %r0, %sr5
|
||||
mtsp %r0, %sr6
|
||||
tovirt_r1 %r29
|
||||
load32 KERNEL_PSW, %r1
|
||||
|
||||
rsm PSW_SM_QUIET,%r0 /* second "heavy weight" ctl op */
|
||||
mtctl %r0, %cr17 /* Clear IIASQ tail */
|
||||
mtctl %r0, %cr17 /* Clear IIASQ head */
|
||||
mtctl %r1, %ipsw
|
||||
load32 4f, %r1
|
||||
mtctl %r1, %cr18 /* Set IIAOQ tail */
|
||||
ldo 4(%r1), %r1
|
||||
mtctl %r1, %cr18 /* Set IIAOQ head */
|
||||
rfir
|
||||
nop
|
||||
4:
|
||||
.endm
|
||||
|
||||
/*
|
||||
* The "get_stack" macros are responsible for determining the
|
||||
* kernel stack value.
|
||||
|
|
Loading…
Reference in New Issue