forked from Minki/linux
parisc: Remove unnecessary macros from entry.S
The EXTR, DEP and DEPI macros are unnecessary. There are PA 1.X pneumonics available with the same functionality, and the DEP and DEPI macros conflict with assembler pneumonics. Tested on a variety of 32 and 64-bit systems. Signed-off-by: John David Anglin <dave.anglin@nrc-cnrc.gc.ca> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
This commit is contained in:
parent
f4c0346c6f
commit
9b437bca16
@ -364,32 +364,6 @@
|
||||
.align 32
|
||||
.endm
|
||||
|
||||
/* The following are simple 32 vs 64 bit instruction
|
||||
* abstractions for the macros */
|
||||
.macro EXTR reg1,start,length,reg2
|
||||
#ifdef CONFIG_64BIT
|
||||
extrd,u \reg1,32+(\start),\length,\reg2
|
||||
#else
|
||||
extrw,u \reg1,\start,\length,\reg2
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro DEP reg1,start,length,reg2
|
||||
#ifdef CONFIG_64BIT
|
||||
depd \reg1,32+(\start),\length,\reg2
|
||||
#else
|
||||
depw \reg1,\start,\length,\reg2
|
||||
#endif
|
||||
.endm
|
||||
|
||||
.macro DEPI val,start,length,reg
|
||||
#ifdef CONFIG_64BIT
|
||||
depdi \val,32+(\start),\length,\reg
|
||||
#else
|
||||
depwi \val,\start,\length,\reg
|
||||
#endif
|
||||
.endm
|
||||
|
||||
/* In LP64, the space contains part of the upper 32 bits of the
|
||||
* fault. We have to extract this and place it in the va,
|
||||
* zeroing the corresponding bits in the space register */
|
||||
@ -442,19 +416,19 @@
|
||||
*/
|
||||
.macro L2_ptep pmd,pte,index,va,fault
|
||||
#if PT_NLEVELS == 3
|
||||
EXTR \va,31-ASM_PMD_SHIFT,ASM_BITS_PER_PMD,\index
|
||||
extru \va,31-ASM_PMD_SHIFT,ASM_BITS_PER_PMD,\index
|
||||
#else
|
||||
EXTR \va,31-ASM_PGDIR_SHIFT,ASM_BITS_PER_PGD,\index
|
||||
extru \va,31-ASM_PGDIR_SHIFT,ASM_BITS_PER_PGD,\index
|
||||
#endif
|
||||
DEP %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
dep %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
copy %r0,\pte
|
||||
ldw,s \index(\pmd),\pmd
|
||||
bb,>=,n \pmd,_PxD_PRESENT_BIT,\fault
|
||||
DEP %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
|
||||
dep %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
|
||||
copy \pmd,%r9
|
||||
SHLREG %r9,PxD_VALUE_SHIFT,\pmd
|
||||
EXTR \va,31-PAGE_SHIFT,ASM_BITS_PER_PTE,\index
|
||||
DEP %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
extru \va,31-PAGE_SHIFT,ASM_BITS_PER_PTE,\index
|
||||
dep %r0,31,PAGE_SHIFT,\pmd /* clear offset */
|
||||
shladd \index,BITS_PER_PTE_ENTRY,\pmd,\pmd
|
||||
LDREG %r0(\pmd),\pte /* pmd is now pte */
|
||||
bb,>=,n \pte,_PAGE_PRESENT_BIT,\fault
|
||||
@ -605,7 +579,7 @@
|
||||
depdi 0,31,32,\tmp
|
||||
#endif
|
||||
copy \va,\tmp1
|
||||
DEPI 0,31,23,\tmp1
|
||||
depi 0,31,23,\tmp1
|
||||
cmpb,COND(<>),n \tmp,\tmp1,\fault
|
||||
ldi (_PAGE_DIRTY|_PAGE_WRITE|_PAGE_READ),\prot
|
||||
depd,z \prot,8,7,\prot
|
||||
|
Loading…
Reference in New Issue
Block a user