|
@@ -37,7 +37,7 @@
|
|
|
#include <asm/unistd.h>
|
|
|
#include <asm/thread_info.h>
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
#define CMPIB cmpib,*
|
|
|
#define CMPB cmpb,*
|
|
|
#define COND(x) *x
|
|
@@ -217,7 +217,7 @@
|
|
|
va = r8 /* virtual address for which the trap occured */
|
|
|
spc = r24 /* space for which the trap occured */
|
|
|
|
|
|
-#ifndef __LP64__
|
|
|
+#ifndef CONFIG_64BIT
|
|
|
|
|
|
/*
|
|
|
* itlb miss interruption handler (parisc 1.1 - 32 bit)
|
|
@@ -239,7 +239,7 @@
|
|
|
|
|
|
.macro itlb_20 code
|
|
|
mfctl %pcsq, spc
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
b itlb_miss_20w
|
|
|
#else
|
|
|
b itlb_miss_20
|
|
@@ -249,7 +249,7 @@
|
|
|
.align 32
|
|
|
.endm
|
|
|
|
|
|
-#ifndef __LP64__
|
|
|
+#ifndef CONFIG_64BIT
|
|
|
/*
|
|
|
* naitlb miss interruption handler (parisc 1.1 - 32 bit)
|
|
|
*
|
|
@@ -286,7 +286,7 @@
|
|
|
.macro naitlb_20 code
|
|
|
|
|
|
mfctl %isr,spc
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
b itlb_miss_20w
|
|
|
#else
|
|
|
b itlb_miss_20
|
|
@@ -299,7 +299,7 @@
|
|
|
.align 32
|
|
|
.endm
|
|
|
|
|
|
-#ifndef __LP64__
|
|
|
+#ifndef CONFIG_64BIT
|
|
|
/*
|
|
|
* dtlb miss interruption handler (parisc 1.1 - 32 bit)
|
|
|
*/
|
|
@@ -321,7 +321,7 @@
|
|
|
.macro dtlb_20 code
|
|
|
|
|
|
mfctl %isr, spc
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
b dtlb_miss_20w
|
|
|
#else
|
|
|
b dtlb_miss_20
|
|
@@ -331,7 +331,7 @@
|
|
|
.align 32
|
|
|
.endm
|
|
|
|
|
|
-#ifndef __LP64__
|
|
|
+#ifndef CONFIG_64BIT
|
|
|
/* nadtlb miss interruption handler (parisc 1.1 - 32 bit) */
|
|
|
|
|
|
.macro nadtlb_11 code
|
|
@@ -349,7 +349,7 @@
|
|
|
.macro nadtlb_20 code
|
|
|
|
|
|
mfctl %isr,spc
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
b nadtlb_miss_20w
|
|
|
#else
|
|
|
b nadtlb_miss_20
|
|
@@ -359,7 +359,7 @@
|
|
|
.align 32
|
|
|
.endm
|
|
|
|
|
|
-#ifndef __LP64__
|
|
|
+#ifndef CONFIG_64BIT
|
|
|
/*
|
|
|
* dirty bit trap interruption handler (parisc 1.1 - 32 bit)
|
|
|
*/
|
|
@@ -381,7 +381,7 @@
|
|
|
.macro dbit_20 code
|
|
|
|
|
|
mfctl %isr,spc
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
b dbit_trap_20w
|
|
|
#else
|
|
|
b dbit_trap_20
|
|
@@ -394,7 +394,7 @@
|
|
|
/* The following are simple 32 vs 64 bit instruction
|
|
|
* abstractions for the macros */
|
|
|
.macro EXTR reg1,start,length,reg2
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
extrd,u \reg1,32+\start,\length,\reg2
|
|
|
#else
|
|
|
extrw,u \reg1,\start,\length,\reg2
|
|
@@ -402,7 +402,7 @@
|
|
|
.endm
|
|
|
|
|
|
.macro DEP reg1,start,length,reg2
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
depd \reg1,32+\start,\length,\reg2
|
|
|
#else
|
|
|
depw \reg1,\start,\length,\reg2
|
|
@@ -410,7 +410,7 @@
|
|
|
.endm
|
|
|
|
|
|
.macro DEPI val,start,length,reg
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
depdi \val,32+\start,\length,\reg
|
|
|
#else
|
|
|
depwi \val,\start,\length,\reg
|
|
@@ -421,7 +421,7 @@
|
|
|
* fault. We have to extract this and place it in the va,
|
|
|
* zeroing the corresponding bits in the space register */
|
|
|
.macro space_adjust spc,va,tmp
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
extrd,u \spc,63,SPACEID_SHIFT,\tmp
|
|
|
depd %r0,63,SPACEID_SHIFT,\spc
|
|
|
depd \tmp,31,SPACEID_SHIFT,\va
|
|
@@ -479,7 +479,7 @@
|
|
|
bb,>=,n \pmd,_PxD_PRESENT_BIT,\fault
|
|
|
DEP %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
|
|
|
copy \pmd,%r9
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
shld %r9,PxD_VALUE_SHIFT,\pmd
|
|
|
#else
|
|
|
shlw %r9,PxD_VALUE_SHIFT,\pmd
|
|
@@ -610,7 +610,7 @@
|
|
|
.macro do_alias spc,tmp,tmp1,va,pte,prot,fault
|
|
|
cmpib,COND(<>),n 0,\spc,\fault
|
|
|
ldil L%(TMPALIAS_MAP_START),\tmp
|
|
|
-#if defined(__LP64__) && (TMPALIAS_MAP_START >= 0x80000000)
|
|
|
+#if defined(CONFIG_64BIT) && (TMPALIAS_MAP_START >= 0x80000000)
|
|
|
/* on LP64, ldi will sign extend into the upper 32 bits,
|
|
|
* which is behaviour we don't want */
|
|
|
depdi 0,31,32,\tmp
|
|
@@ -624,7 +624,7 @@
|
|
|
* OK, it is in the temp alias region, check whether "from" or "to".
|
|
|
* Check "subtle" note in pacache.S re: r23/r26.
|
|
|
*/
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
extrd,u,*= \va,41,1,%r0
|
|
|
#else
|
|
|
extrw,u,= \va,9,1,%r0
|
|
@@ -691,7 +691,7 @@ fault_vector_20:
|
|
|
def 30
|
|
|
def 31
|
|
|
|
|
|
-#ifndef __LP64__
|
|
|
+#ifndef CONFIG_64BIT
|
|
|
|
|
|
.export fault_vector_11
|
|
|
|
|
@@ -764,7 +764,7 @@ __kernel_thread:
|
|
|
|
|
|
copy %r30, %r1
|
|
|
ldo PT_SZ_ALGN(%r30),%r30
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
/* Yo, function pointers in wide mode are little structs... -PB */
|
|
|
ldd 24(%r26), %r2
|
|
|
STREG %r2, PT_GR27(%r1) /* Store childs %dp */
|
|
@@ -780,7 +780,7 @@ __kernel_thread:
|
|
|
or %r26, %r24, %r26 /* will have kernel mappings. */
|
|
|
ldi 1, %r25 /* stack_start, signals kernel thread */
|
|
|
stw %r0, -52(%r30) /* user_tid */
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
BL do_fork, %r2
|
|
@@ -809,7 +809,7 @@ ret_from_kernel_thread:
|
|
|
|
|
|
LDREG TI_TASK-THREAD_SZ_ALGN(%r30), %r1
|
|
|
LDREG TASK_PT_GR25(%r1), %r26
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
LDREG TASK_PT_GR27(%r1), %r27
|
|
|
LDREG TASK_PT_GR22(%r1), %r22
|
|
|
#endif
|
|
@@ -817,7 +817,7 @@ ret_from_kernel_thread:
|
|
|
ble 0(%sr7, %r1)
|
|
|
copy %r31, %r2
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
loadgp /* Thread could have been in a module */
|
|
|
#endif
|
|
@@ -838,7 +838,7 @@ __execve:
|
|
|
STREG %r26, PT_GR26(%r16)
|
|
|
STREG %r25, PT_GR25(%r16)
|
|
|
STREG %r24, PT_GR24(%r16)
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
BL sys_execve, %r2
|
|
@@ -916,7 +916,7 @@ syscall_exit_rfi:
|
|
|
STREG %r19,PT_IAOQ1(%r16)
|
|
|
LDREG PT_PSW(%r16),%r19
|
|
|
load32 USER_PSW_MASK,%r1
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
load32 USER_PSW_HI_MASK,%r20
|
|
|
depd %r20,31,32,%r1
|
|
|
#endif
|
|
@@ -960,7 +960,7 @@ intr_return:
|
|
|
/* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) amount
|
|
|
** irq_stat[] is defined using ____cacheline_aligned.
|
|
|
*/
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
shld %r1, 6, %r20
|
|
|
#else
|
|
|
shlw %r1, 5, %r20
|
|
@@ -1018,7 +1018,7 @@ intr_restore:
|
|
|
.import do_softirq,code
|
|
|
intr_do_softirq:
|
|
|
BL do_softirq,%r2
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#else
|
|
|
nop
|
|
@@ -1036,7 +1036,7 @@ intr_do_resched:
|
|
|
CMPIB= 0,%r20,intr_restore /* backward */
|
|
|
nop
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1069,7 +1069,7 @@ intr_do_signal:
|
|
|
|
|
|
copy %r0, %r24 /* unsigned long in_syscall */
|
|
|
copy %r16, %r25 /* struct pt_regs *regs */
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1093,7 +1093,7 @@ intr_extint:
|
|
|
mfctl %cr31,%r1
|
|
|
copy %r30,%r17
|
|
|
/* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
depdi 0,63,15,%r17
|
|
|
#else
|
|
|
depi 0,31,15,%r17
|
|
@@ -1120,7 +1120,7 @@ intr_extint:
|
|
|
|
|
|
ldil L%intr_return, %r2
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1164,7 +1164,7 @@ intr_save:
|
|
|
mfctl %cr21, %r17 /* ior */
|
|
|
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
/*
|
|
|
* If the interrupted code was running with W bit off (32 bit),
|
|
|
* clear the b bits (bits 0 & 1) in the ior.
|
|
@@ -1199,7 +1199,7 @@ skip_save_ior:
|
|
|
loadgp
|
|
|
|
|
|
copy %r29, %r25 /* arg1 is pt_regs */
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1237,7 +1237,7 @@ skip_save_ior:
|
|
|
spc = r24 /* space for which the trap occured */
|
|
|
ptp = r25 /* page directory/page table pointer */
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
|
|
|
dtlb_miss_20w:
|
|
|
space_adjust spc,va,t0
|
|
@@ -1528,7 +1528,7 @@ nadtlb_probe_check:
|
|
|
nop
|
|
|
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
itlb_miss_20w:
|
|
|
|
|
|
/*
|
|
@@ -1595,7 +1595,7 @@ itlb_miss_20:
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
|
|
|
dbit_trap_20w:
|
|
|
space_adjust spc,va,t0
|
|
@@ -1804,7 +1804,7 @@ sys_fork_wrapper:
|
|
|
|
|
|
STREG %r2,-RP_OFFSET(%r30)
|
|
|
ldo FRAME_SIZE(%r30),%r30
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1854,7 +1854,7 @@ sys_clone_wrapper:
|
|
|
|
|
|
STREG %r2,-RP_OFFSET(%r30)
|
|
|
ldo FRAME_SIZE(%r30),%r30
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1876,7 +1876,7 @@ sys_vfork_wrapper:
|
|
|
|
|
|
STREG %r2,-RP_OFFSET(%r30)
|
|
|
ldo FRAME_SIZE(%r30),%r30
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
|
|
@@ -1904,7 +1904,7 @@ sys_vfork_wrapper:
|
|
|
|
|
|
STREG %r2,-RP_OFFSET(%r30)
|
|
|
ldo FRAME_SIZE(%r30),%r30
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
BL \execve,%r2
|
|
@@ -1930,7 +1930,7 @@ error_\execve:
|
|
|
sys_execve_wrapper:
|
|
|
execve_wrapper sys_execve
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
.export sys32_execve_wrapper
|
|
|
.import sys32_execve
|
|
|
|
|
@@ -1944,7 +1944,7 @@ sys_rt_sigreturn_wrapper:
|
|
|
ldo TASK_REGS(%r26),%r26 /* get pt regs */
|
|
|
/* Don't save regs, we are going to restore them from sigcontext. */
|
|
|
STREG %r2, -RP_OFFSET(%r30)
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo FRAME_SIZE(%r30), %r30
|
|
|
BL sys_rt_sigreturn,%r2
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
@@ -1975,7 +1975,7 @@ sys_sigaltstack_wrapper:
|
|
|
ldo TASK_REGS(%r1),%r24 /* get pt regs */
|
|
|
LDREG TASK_PT_GR30(%r24),%r24
|
|
|
STREG %r2, -RP_OFFSET(%r30)
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo FRAME_SIZE(%r30), %r30
|
|
|
b,l do_sigaltstack,%r2
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
@@ -1989,7 +1989,7 @@ sys_sigaltstack_wrapper:
|
|
|
bv %r0(%r2)
|
|
|
nop
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
.export sys32_sigaltstack_wrapper
|
|
|
sys32_sigaltstack_wrapper:
|
|
|
/* Get the user stack pointer */
|
|
@@ -2013,7 +2013,7 @@ sys_rt_sigsuspend_wrapper:
|
|
|
reg_save %r24
|
|
|
|
|
|
STREG %r2, -RP_OFFSET(%r30)
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo FRAME_SIZE(%r30), %r30
|
|
|
b,l sys_rt_sigsuspend,%r2
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
@@ -2086,7 +2086,7 @@ syscall_check_bh:
|
|
|
ldw TI_CPU-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26 /* cpu # */
|
|
|
|
|
|
/* shift left ____cacheline_aligned (aka L1_CACHE_BYTES) bits */
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
shld %r26, 6, %r20
|
|
|
#else
|
|
|
shlw %r26, 5, %r20
|
|
@@ -2151,7 +2151,7 @@ syscall_restore:
|
|
|
|
|
|
depi 3,31,2,%r31 /* ensure return to user mode. */
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
/* decide whether to reset the wide mode bit
|
|
|
*
|
|
|
* For a syscall, the W bit is stored in the lowest bit
|
|
@@ -2247,7 +2247,7 @@ syscall_do_softirq:
|
|
|
.import schedule,code
|
|
|
syscall_do_resched:
|
|
|
BL schedule,%r2
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#else
|
|
|
nop
|
|
@@ -2267,7 +2267,7 @@ syscall_do_signal:
|
|
|
|
|
|
ldi 1, %r24 /* unsigned long in_syscall */
|
|
|
|
|
|
-#ifdef __LP64__
|
|
|
+#ifdef CONFIG_64BIT
|
|
|
ldo -16(%r30),%r29 /* Reference param save area */
|
|
|
#endif
|
|
|
BL do_signal,%r2
|