Kill '$' in exported symbols.

This commit is contained in:
skrll 2009-05-24 09:17:59 +00:00
parent fae01d956c
commit 93a4f7c66c
4 changed files with 277 additions and 275 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.S,v 1.33 2009/05/08 09:33:58 skrll Exp $ */
/* $NetBSD: locore.S,v 1.34 2009/05/24 09:17:59 skrll Exp $ */
/* $OpenBSD: locore.S,v 1.158 2008/07/28 19:08:46 miod Exp $ */
/*
@ -237,9 +237,9 @@ ENTRY_NOPROFILE(start,0)
/* XXX - we should create a real trapframe for lwp0 */
copy %t3, %t2
ldi NBPG+TRAPFRAME_SIZEOF, %t1
$start_zero_tf:
L$start_zero_tf:
stws,ma %r0, 4(%t2)
addib,>= -8, %t1, $start_zero_tf
addib,>= -8, %t1, L$start_zero_tf
stws,ma %r0, 4(%t2) /* XXX could use ,bc here, but gas is broken */
/*
@ -283,13 +283,13 @@ $start_zero_tf:
* turn on virtual memory.
*/
copy %sp, %arg0
ldil L%$qisnowon, %rp
ldo R%$qisnowon(%rp), %rp
ldil L%qisnowon, %rp
ldo R%qisnowon(%rp), %rp
b kernel_setup
ldi PSW_Q|PSW_I, %arg1
$qisnowon:
qisnowon:
copy %r4, %arg0
copy %r5, %arg1
/*
@ -309,8 +309,8 @@ $qisnowon:
*/
mtctl %r0, %pcsq
mtctl %r0, %pcsq
ldil L%$virtual_mode, %t1
ldo R%$virtual_mode(%t1), %t1
ldil L%virtual_mode, %t1
ldo R%virtual_mode(%t1), %t1
mtctl %t1, %pcoq
ldo 4(%t1), %t1
mtctl %t1, %pcoq
@ -326,7 +326,7 @@ $qisnowon:
nop
nop
$virtual_mode:
virtual_mode:
ldil L%kernelmapped, %t1
stw %t1, R%kernelmapped(%t1)
@ -336,12 +336,12 @@ $virtual_mode:
/* have to call debugger from here, from virtual mode */
ldil L%boothowto, %r1
ldw R%boothowto(%r1), %r1
bb,>= %r1, 25, $noddb
bb,>= %r1, 25, L$noddb
nop
break HPPA_BREAK_KERNEL, HPPA_BREAK_KGDB
nop
$noddb:
L$noddb:
#endif
.import main,code
@ -395,8 +395,8 @@ LEAF_ENTRY_NOPROFILE(kernel_setup)
/*
* load address of interrupt vector table
*/
ldil L%$ivaaddr,%t2
ldo R%$ivaaddr(%t2),%t2
ldil L%ivaaddr,%t2
ldo R%ivaaddr(%t2),%t2
mtctl %t2,%iva
/*
@ -668,10 +668,10 @@ ENTRY(hp700_intr_ipending_new,HPPA_FRAME_SIZE)
* the addib runs with the mtsar in its delay slot.
* If the addib branches, the mtsar is nullified.
*/
$hp700_inew_loop:
L$hp700_inew_loop:
mtsar %arg2
bvb,>=,n %arg1, $hp700_inew_loop
addib,<,n -1, %arg2, $hp700_inew_done
bvb,>=,n %arg1, L$hp700_inew_loop
addib,<,n -1, %arg2, L$hp700_inew_done
/*
* If the map entry for this bit has INT_REG_BIT_REG
@ -683,11 +683,11 @@ $hp700_inew_loop:
ldil L%INT_REG_BIT_REG, %t2
ldo R%INT_REG_BIT_REG(%t2), %t2
and %t1, %t2, %t3
combt,=,n %t2, %t3, $hp700_inew_descend
addib,>= -1, %arg2, $hp700_inew_loop
combt,=,n %t2, %t3, L$hp700_inew_descend
addib,>= -1, %arg2, L$hp700_inew_loop
or %t1, %ret0, %ret0
$hp700_inew_done:
L$hp700_inew_done:
/* End stack calling convention. */
ldw HPPA_FRAME_CRP(%r3), %rp
@ -695,7 +695,7 @@ $hp700_inew_done:
bv %r0(%rp)
ldw,mb -HPPA_FRAME_SIZE(%sp), %r3
$hp700_inew_descend:
L$hp700_inew_descend:
/*
* If the next interrupt register index is zero,
@ -704,7 +704,7 @@ $hp700_inew_descend:
* never descend into since it's the root.)
*/
andcm,<> %t1, %t2, %t1
b,n $hp700_inew_unused
b,n L$hp700_inew_unused
/* Save our state. */
stw %arg0, HPPA_FRAME_ARG(0)(%r3)
@ -734,10 +734,10 @@ $hp700_inew_descend:
ldw HPPA_FRAME_ARG(3)(%r3), %ret1
or %ret1, %ret0, %ret0
$hp700_inew_unused:
addib,>= -1, %arg2, $hp700_inew_loop
L$hp700_inew_unused:
addib,>= -1, %arg2, L$hp700_inew_loop
nop
b,n $hp700_inew_done
b,n L$hp700_inew_done
EXIT(hp700_intr_ipending_new)
/*
@ -999,7 +999,7 @@ ENTRY_NOPROFILE(lwp_trampoline,HPPA_FRAME_SIZE)
*/
mfctl CR_CURLWP, %t2
.call
b $syscall_return
b syscall_return
ldw L_MD(%t2), %t3
EXIT(lwp_trampoline)

View File

@ -1,4 +1,4 @@
/* $NetBSD: copy.S,v 1.11 2009/05/09 12:18:29 skrll Exp $ */
/* $NetBSD: copy.S,v 1.12 2009/05/24 09:17:59 skrll Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@ -174,14 +174,14 @@ LEAF_ENTRY(spstrcpy)
mtsp %arg2, %sr2
copy %arg1, %arg0 /* save src */
$spstrcpy_loop:
comb,=,n %r0, %ret1, $spstrcpy_exit
L$spstrcpy_loop:
comb,=,n %r0, %ret1, L$spstrcpy_exit
ldbs,ma 1(%sr1, %arg1), %t1
stbs,ma %t1, 1(%sr2, %arg3)
comb,<> %r0, %t1, $spstrcpy_loop
comb,<> %r0, %t1, L$spstrcpy_loop
ldo -1(%ret1), %ret1
$spstrcpy_exit:
L$spstrcpy_exit:
/* reset fault handler */
stw %r0, PCB_ONFAULT+U_PCB(%r31)
mtsp %r0, %sr2 /* XXX need this? */

View File

@ -1,4 +1,4 @@
/* $NetBSD: fpemu.S,v 1.4 2007/11/12 12:58:10 skrll Exp $ */
/* $NetBSD: fpemu.S,v 1.5 2009/05/24 09:17:59 skrll Exp $ */
/* $OpenBSD: fpemu.S,v 1.4 2001/03/29 02:18:45 mickey Exp $ */
@ -38,12 +38,12 @@
#define FPEMU_VERSION (1 << 11)
#define FP_TABLE2(name, ep0, ep1, ep2, ep3) \
ldil L%$fpemu_tbl$name, %t1 ! \
ldo R%$fpemu_tbl$name(%t1), %t1 ! \
ldil L%L$fpemu_tbl$name, %t1 ! \
ldo R%L$fpemu_tbl$name(%t1), %t1 ! \
ldwx,s %r1(%t1), %t2 ! \
bv %r0(%t2) ! \
nop ! \
.label $fpemu_tbl$name ! \
.label L$fpemu_tbl$name ! \
.import __CONCAT(__CONCAT(ep0,_),name), code ! \
.import __CONCAT(__CONCAT(ep1,_),name), code ! \
.import __CONCAT(__CONCAT(ep2,_),name), code ! \
@ -51,12 +51,12 @@
.word __CONCAT(__CONCAT(ep0,_),name), __CONCAT(__CONCAT(ep1,_),name), __CONCAT(__CONCAT(ep2,_),name), __CONCAT(__CONCAT(ep3,_),name)
#define FP_TABLE3(name,ep0,ep1,ep2,ep3,ep4,ep5,ep6,ep7,ep8,ep9,epa,epb,epc,epd,epe,epf) \
ldil L%$fpemu_tbl$name, %t1 ! \
ldo R%$fpemu_tbl$name(%t1), %t1 ! \
ldil L%L$fpemu_tbl$name, %t1 ! \
ldo R%L$fpemu_tbl$name(%t1), %t1 ! \
ldwx,s %r1(%t1), %t2 ! \
bv %r0(%t2) ! \
nop ! \
.label $fpemu_tbl$name ! \
.label L$fpemu_tbl$name ! \
.import __CONCAT(__CONCAT(ep0,_),name), code ! \
.import __CONCAT(__CONCAT(ep1,_),name), code ! \
.import __CONCAT(__CONCAT(ep2,_),name), code ! \
@ -77,8 +77,8 @@
.section .bss
.export $fpemu_stack, data
$fpemu_stack:
.export L$fpemu_stack, data
L$fpemu_stack:
.comm NBPG
.text
@ -89,11 +89,11 @@ LEAF_ENTRY_NOPROFILE(fpu_emulate)
extru %arg0, 22, 2, %arg3
extru %arg0, 18, 3, %r31
comib,= 1, %arg3, $fpu_cln1
comib,= 1, %arg3, L$fpu_cln1
nop
extru %arg0, 16, 2, %r31
$fpu_cln1:
L$fpu_cln1:
/*
* theoreticaly we would need to determine the fpu instruction
* exception type (there could be 4 of those, but stick w/
@ -103,9 +103,9 @@ $fpu_cln1:
extru,<> %arg0, 10, 5, %r1
ldi 32, %r1 /* fpemu zero reg */
extru,<> %arg0, 31, 5, %t1
b,n $fpemu_nzt
comib,=,n 2, %arg3, $fpemu_exit
$fpemu_nzt:
b,n L$fpemu_nzt
comib,=,n 2, %arg3, L$fpemu_exit
L$fpemu_nzt:
copy %arg0, %t4
sh3add %r1, %arg2, %arg0
extru %arg1, 20, 2, %r1
@ -120,29 +120,29 @@ $fpemu_nzt:
* r1 -- format specifier
* (t4 -- copy or arg0, ie iir)
*/
comib,=,n 0, %arg3, $fpemu0c_0
comib,=,n 1, %arg3, $fpemu0c_1
comib,=,n 2, %arg3, $fpemu0c_2
comib,=,n 3, %arg3, $fpemu0c_3
comib,=,n 0, %arg3, L$fpemu0c_0
comib,=,n 1, %arg3, L$fpemu0c_1
comib,=,n 2, %arg3, L$fpemu0c_2
comib,=,n 3, %arg3, L$fpemu0c_3
$fpemu0c_0:
comib,=,n 0, %r31, $fpemu0c_0_0
comib,=,n 1, %r31, $fpemu_exit
comib,=,n 2, %r31, $fpemu0c_0_2
comib,=,n 3, %r31, $fpemu0c_0_3
comib,=,n 4, %r31, $fpemu0c_0_4
comib,=,n 5, %r31, $fpemu0c_0_5
comib,=,n 6, %r31, $fpemu_exit
comib,=,n 7, %r31, $fpemu_exit
L$fpemu0c_0:
comib,=,n 0, %r31, L$fpemu0c_0_0
comib,=,n 1, %r31, L$fpemu_exit
comib,=,n 2, %r31, L$fpemu0c_0_2
comib,=,n 3, %r31, L$fpemu0c_0_3
comib,=,n 4, %r31, L$fpemu0c_0_4
comib,=,n 5, %r31, L$fpemu0c_0_5
comib,=,n 6, %r31, L$fpemu_exit
comib,=,n 7, %r31, L$fpemu_exit
$fpemu0c_0_0:
L$fpemu0c_0_0:
ldi FPEMU_VERSION, %t4
stw %t4, 0(%arg2)
bv 0(%rp)
copy %r0, %ret0
$fpemu0c_0_2: /* fcpy */
comib,=,n 2, %r1, $fpemu_exit
L$fpemu0c_0_2: /* fcpy */
comib,=,n 2, %r1, L$fpemu_exit
subi 3, %r1, %r1
ldw 0*4(%arg0), %t1
ldw 1*4(%arg0), %t2
@ -160,8 +160,8 @@ $fpemu0c_0_2: /* fcpy */
bv 0(%rp)
copy %r0, %ret0
$fpemu0c_0_3: /* fabs */
comib,=,n 2, %r1, $fpemu_exit
L$fpemu0c_0_3: /* fabs */
comib,=,n 2, %r1, L$fpemu_exit
subi 3, %r1, %r1
ldw 0*4(%arg0), %t1
ldw 1*4(%arg0), %t2
@ -180,30 +180,30 @@ $fpemu0c_0_3: /* fabs */
bv 0(%rp)
copy %r0, %ret0
$fpemu0c_0_4: /* fsqrt */
L$fpemu0c_0_4: /* fsqrt */
/* quad not implemented */
FP_TABLE2(fsqrt,sgl,dbl,invalid,invalid)
$fpemu0c_0_5: /* frnd */
L$fpemu0c_0_5: /* frnd */
/* quad not implemented */
FP_TABLE2(frnd,sgl,dbl,invalid,quad)
$fpemu0c_1:
L$fpemu0c_1:
extru %t4, 18, 2, %t2
sh2add %r1, %t2, %r1
comib,=,n 0, %r31, $fpemu0c_1_0
comib,=,n 1, %r31, $fpemu0c_1_1
comib,=,n 2, %r31, $fpemu0c_1_2
comib,=,n 3, %r31, $fpemu0c_1_3
comib,=,n 0, %r31, L$fpemu0c_1_0
comib,=,n 1, %r31, L$fpemu0c_1_1
comib,=,n 2, %r31, L$fpemu0c_1_2
comib,=,n 3, %r31, L$fpemu0c_1_3
$fpemu0c_1_0: /* fcnvff */
L$fpemu0c_1_0: /* fcnvff */
#define sgl_to_quad_fcnvff invalid_fcnvff
#define dbl_to_quad_fcnvff invalid_fcnvff
#define quad_to_sgl_fcnvff invalid_fcnvff
#define quad_to_dbl_fcnvff invalid_fcnvff
FP_TABLE3(fcnvff, invalid, sgl_to_dbl, invalid, sgl_to_quad, dbl_to_sgl, invalid, invalid, dbl_to_quad, invalid, invalid, invalid, invalid, quad_to_sgl, quad_to_dbl, invalid, invalid)
$fpemu0c_1_1: /* fcnvxf */
L$fpemu0c_1_1: /* fcnvxf */
#define sgl_to_quad_fcnvxf invalid_fcnvxf
#define dbl_to_quad_fcnvxf invalid_fcnvxf
#define quad_to_sgl_fcnvxf invalid_fcnvxf
@ -211,7 +211,7 @@ $fpemu0c_1_1: /* fcnvxf */
#define quad_to_quad_fcnvxf invalid_fcnvxf
FP_TABLE3(fcnvxf, sgl_to_sgl, sgl_to_dbl, invalid, sgl_to_quad, dbl_to_sgl, dbl_to_dbl, invalid, dbl_to_quad, invalid, invalid, invalid, invalid, quad_to_sgl, quad_to_dbl, invalid, quad_to_quad)
$fpemu0c_1_2: /* fcnvfx */
L$fpemu0c_1_2: /* fcnvfx */
#define sgl_to_quad_fcnvfx invalid_fcnvfx
#define dbl_to_quad_fcnvfx invalid_fcnvfx
#define quad_to_sgl_fcnvfx invalid_fcnvfx
@ -219,7 +219,7 @@ $fpemu0c_1_2: /* fcnvfx */
#define quad_to_quad_fcnvfx invalid_fcnvfx
FP_TABLE3(fcnvfx, sgl_to_sgl, sgl_to_dbl, invalid, sgl_to_quad, dbl_to_sgl, dbl_to_dbl, invalid, dbl_to_quad, invalid, invalid, invalid, invalid, quad_to_sgl, quad_to_dbl, invalid, quad_to_quad)
$fpemu0c_1_3: /* fcnvfxt */
L$fpemu0c_1_3: /* fcnvfxt */
#define sgl_to_quad_fcnvfxt invalid_fcnvfxt
#define dbl_to_quad_fcnvfxt invalid_fcnvfxt
#define quad_to_sgl_fcnvfxt invalid_fcnvfxt
@ -228,17 +228,17 @@ $fpemu0c_1_3: /* fcnvfxt */
FP_TABLE3(fcnvfxt, sgl_to_sgl, sgl_to_dbl, invalid, sgl_to_quad, dbl_to_sgl, dbl_to_dbl, invalid, dbl_to_quad, invalid, invalid, invalid, invalid, quad_to_sgl, quad_to_dbl, invalid, quad_to_quad)
$fpemu0c_2:
comib,=,n 0, %r31, $fpemu0c_2_0
comib,=,n 1, %r31, $fpemu0c_2_1
comib,=,n 2, %r31, $fpemu_exit
comib,=,n 3, %r31, $fpemu_exit
comib,=,n 4, %r31, $fpemu_exit
comib,=,n 5, %r31, $fpemu_exit
comib,=,n 6, %r31, $fpemu_exit
comib,=,n 7, %r31, $fpemu_exit
L$fpemu0c_2:
comib,=,n 0, %r31, L$fpemu0c_2_0
comib,=,n 1, %r31, L$fpemu0c_2_1
comib,=,n 2, %r31, L$fpemu_exit
comib,=,n 3, %r31, L$fpemu_exit
comib,=,n 4, %r31, L$fpemu_exit
comib,=,n 5, %r31, L$fpemu_exit
comib,=,n 6, %r31, L$fpemu_exit
comib,=,n 7, %r31, L$fpemu_exit
$fpemu0c_2_0:
L$fpemu0c_2_0:
copy %arg2, %arg3
extru,<> %t4, 15, 5, %t1
ldi 32, %t1
@ -246,8 +246,8 @@ $fpemu0c_2_0:
extru %t4, 31, 5, %arg2
FP_TABLE2(fcmp,sgl,dbl,invalid,invalid)
$fpemu0c_2_1:
comib,<>,n 0, %r1, $fpemu_exit
L$fpemu0c_2_1:
comib,<>,n 0, %r1, L$fpemu_exit
/* extru %t4, 31, 5, %arg1 */
/* XXX timex is much more compilicated */
@ -268,38 +268,38 @@ $fpemu0c_2_1:
bv %r0(%rp)
mtctl %t2, %pcoq
$fpemu0c_3:
L$fpemu0c_3:
copy %arg2, %arg3
extru,<> %t4, 31, 5, %t1
ldi 32, %t1
sh3add %t1, %arg3, %arg2
comib,=,n 0, %r31, $fpemu0c_3_0
comib,=,n 1, %r31, $fpemu0c_3_1
comib,=,n 2, %r31, $fpemu0c_3_2
comib,=,n 3, %r31, $fpemu0c_3_3
comib,=,n 4, %r31, $fpemu0c_3_4
comib,=,n 5, %r31, $fpemu_exit
comib,=,n 6, %r31, $fpemu_exit
comib,=,n 7, %r31, $fpemu_exit
comib,=,n 0, %r31, L$fpemu0c_3_0
comib,=,n 1, %r31, L$fpemu0c_3_1
comib,=,n 2, %r31, L$fpemu0c_3_2
comib,=,n 3, %r31, L$fpemu0c_3_3
comib,=,n 4, %r31, L$fpemu0c_3_4
comib,=,n 5, %r31, L$fpemu_exit
comib,=,n 6, %r31, L$fpemu_exit
comib,=,n 7, %r31, L$fpemu_exit
$fpemu0c_3_0: /* fadd */
L$fpemu0c_3_0: /* fadd */
FP_TABLE2(fadd,sgl,dbl,invalid,invalid)
$fpemu0c_3_1: /* fsub */
L$fpemu0c_3_1: /* fsub */
FP_TABLE2(fsub,sgl,dbl,invalid,invalid)
$fpemu0c_3_2: /* fmpy */
L$fpemu0c_3_2: /* fmpy */
FP_TABLE2(fmpy,sgl,dbl,invalid,invalid)
$fpemu0c_3_3: /* fdiv */
L$fpemu0c_3_3: /* fdiv */
FP_TABLE2(fdiv,sgl,dbl,invalid,invalid)
$fpemu0c_3_4: /* frem */
L$fpemu0c_3_4: /* frem */
FP_TABLE2(frem,sgl,dbl,invalid,invalid)
.export $fpemu_exit, code
$fpemu_exit:
.export L$fpemu_exit, code
L$fpemu_exit:
/* these look very ugly, but we don't want to mess up w/ m4 just
* for the sake of overall world prettieness value growth XXX */
invalid_fsqrt:

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.S,v 1.29 2009/05/24 09:13:37 skrll Exp $ */
/* $NetBSD: trap.S,v 1.30 2009/05/24 09:17:59 skrll Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@ -107,9 +107,9 @@
.section .data
.align 64
$trap_tmp_save:
L$trap_tmp_save:
.block TF_PHYS
.size $trap_tmp_save, .-$trap_tmp_save
.size L$trap_tmp_save, .-L$trap_tmp_save
.align 64
.export emergency_stack_start, data
@ -134,10 +134,10 @@ emergency_stack_end:
.export gateway_page, entry
gateway_page:
nop /* @ 0.C0000000 (Nothing) */
gate,n $bsd_syscall,%r0 /* @ 0.C0000004 (HPUX/BSD) */
gate,n bsd_syscall,%r0 /* @ 0.C0000004 (HPUX/BSD) */
#ifdef COMPAT_OSF1
bl,n $osf_syscall,%r0
bl,n $osf_syscall,%r0
bl,n osf_syscall,%r0
bl,n osf_syscall,%r0
#else
nop /* @ 0.C0000008 (HPOSF UNIX) */
nop /* @ 0.C000000C (HPOSF Mach) */
@ -148,7 +148,7 @@ gateway_page:
nop
#ifdef COMPAT_OSF1
$osf_syscall:
osf_syscall:
/*
* Ripped screaming from OSF/MkLinux:
*
@ -163,11 +163,11 @@ $osf_syscall:
stw %r22, HPPA_FRAME_ARG(4)(%sp)
stw %r21, HPPA_FRAME_ARG(5)(%sp)
stw %r29, HPPA_FRAME_SL(%sp)
gate $bsd_syscall,%r0
gate bsd_syscall,%r0
copy %r1, %r22
#endif /* COMPAT_OSF1 */
$bsd_syscall:
bsd_syscall:
/*
* set up a space register and a protection id so that
* we can access kernel memory
@ -182,10 +182,10 @@ $bsd_syscall:
/*
* now call the syscall handler
*/
.import $syscall,code
.import syscall_entry,code
.call
ldil L%$syscall, %t2
be R%$syscall(%sr1, %t2)
ldil L%syscall_entry, %t2
be R%syscall_entry(%sr1, %t2)
nop ! nop ! nop ! nop
.size gateway_page, .-gateway_page
@ -193,11 +193,11 @@ $bsd_syscall:
.export gateway_page_end, entry
gateway_page_end:
.export $syscall,entry
.export syscall_entry,entry
.proc
.callinfo calls
.entry
$syscall:
syscall_entry:
/*
* %r1: eiem
* %ret0: process protection id
@ -422,11 +422,11 @@ $syscall:
.procend
/* FALLTHROUGH */
.export $syscall_return, entry
.export syscall_return, entry
.proc
.callinfo no_calls
.entry
$syscall_return:
syscall_return:
/* t3 == VA trapframe */
/* check for AST ? XXX */
@ -439,8 +439,8 @@ $syscall_return:
* hopefully no page fault would happen on or after the copy,
* and interrupts are disabled.
*/
ldil L%$trap_tmp_save, %t2
ldo R%$trap_tmp_save(%t2), %t2
ldil L%L$trap_tmp_save, %t2
ldo R%L$trap_tmp_save(%t2), %t2
ldw 0(%t3), %r1 ! ldw 4(%t3), %t1 ! stw %r1, 0(%t2) ! stw %t1, 4(%t2)
ldw 8(%t3), %r1 ! ldw 12(%t3), %t1 ! stw %r1, 8(%t2) ! stw %t1, 12(%t2)
@ -532,8 +532,8 @@ $syscall_return:
* since we don't use it anyway.
*/
ssm 0, %r0
ldil L%$trap_tmp_save, %t3
ldo R%$trap_tmp_save(%t3), %t3
ldil L%L$trap_tmp_save, %t3
ldo R%L$trap_tmp_save(%t3), %t3
nop ! nop ! nop ! nop ! nop
rsm RESET_PSW, %r0
@ -567,14 +567,14 @@ $syscall_return:
nop
.exit
.procend
.size $syscall, .-$syscall
$syscall_end:
.size syscall_entry, .- syscall_entry
/*
* interrupt vector table
*/
#define TLABEL(name) $trap$name
#define TELABEL(num) __CONCAT(trap_ep_,num)
#define TLABEL(name) __CONCAT(trap_,name)
#define TRAPLABEL(name,num) __CONCAT(TLABEL(name),num)
#define TELABEL(num) __CONCAT(trap_ep_,num)
#define TRAP(name,num) \
mtctl %r1, %tr7 ! \
@ -585,21 +585,21 @@ $syscall_end:
.align 32
#define ATRAP(name,num) \
.export TLABEL(name)$num, entry ! \
.label TLABEL(name)$num ! \
TRAP(all,num) ! \
.size TLABEL(name)$num, .-TLABEL(name)$num
.export TRAPLABEL(name,num), entry ! \
.label TRAPLABEL(name,num) ! \
TRAP(all,num) ! \
.size TRAPLABEL(name,num), .-TRAPLABEL(name,num)
#define CTRAP(name,num,pre) \
.export TLABEL(name)$num, entry ! \
.label TLABEL(name)$num ! \
.export TRAPLABEL(name,num), entry ! \
.label TRAPLABEL(name,num) ! \
pre ! \
TRAP(name,num) ! \
.size TLABEL(name)$num, .-TLABEL(name)$num
.size TRAPLABEL(name,num), .-TRAPLABEL(name,num)
#define STRAP(name,num,pre) \
.export TLABEL(name)$num, entry ! \
.label TLABEL(name)$num ! \
.export TRAPLABEL(name,num), entry ! \
.label TRAPLABEL(name,num) ! \
pre ! \
mtctl %r1, %tr7 ! \
.export TELABEL(num), entry ! \
@ -610,13 +610,13 @@ $syscall_end:
bv 0(%r1) ! \
ldi num, %r1 ! \
.align 32 ! \
.size TLABEL(name)$num, .-TLABEL(name)$num
.size TRAPLABEL(name,num), .-TRAPLABEL(name,num)
#define LDILDO(name) ! \
.export name, entry ! \
.label name ! \
ldil L%$name,%r1 ! \
ldo R%$name(%r1), %r1
ldil L%TLABEL(name),%r1 ! \
ldo R%TLABEL(name)(%r1), %r1
#ifdef HP7000_CPU
LDILDO(itlb_x)
@ -670,9 +670,9 @@ LDILDO(tlbd_u)
nop
.align NBPG
.export $ivaaddr, entry
.export ivaaddr, entry
.export os_hpmc, entry
$ivaaddr:
ivaaddr:
ATRAP(null,T_NONEXIST) /* 0. invalid interrupt vector */
os_hpmc:
CTRAP(hpmc,T_HPMC,HPMCPRE) /* 1. high priority machine check */
@ -704,43 +704,43 @@ os_hpmc:
ATRAP(dacc,T_DATACC) /* 26. data access rights trap */
ATRAP(dpid,T_DATAPID) /* 27. data protection ID trap */
ATRAP(dalgn,T_DATALIGN) /* 28. unaligned data ref trap */
ATRAP(unk29,29)
ATRAP(unk30,30)
ATRAP(unk31,31)
ATRAP(unk32,32)
ATRAP(unk33,33)
ATRAP(unk34,34)
ATRAP(unk35,35)
ATRAP(unk36,36)
ATRAP(unk37,37)
ATRAP(unk38,38)
ATRAP(unk39,39)
ATRAP(unk40,40)
ATRAP(unk41,41)
ATRAP(unk42,42)
ATRAP(unk43,43)
ATRAP(unk44,44)
ATRAP(unk45,45)
ATRAP(unk46,46)
ATRAP(unk47,47)
ATRAP(unk48,48)
ATRAP(unk49,49)
ATRAP(unk50,50)
ATRAP(unk51,51)
ATRAP(unk52,52)
ATRAP(unk53,53)
ATRAP(unk54,54)
ATRAP(unk55,55)
ATRAP(unk56,56)
ATRAP(unk57,57)
ATRAP(unk58,58)
ATRAP(unk59,59)
ATRAP(unk60,60)
ATRAP(unk61,61)
ATRAP(unk62,62)
ATRAP(unk63,63)
ATRAP(unk,29)
ATRAP(unk,30)
ATRAP(unk,31)
ATRAP(unk,32)
ATRAP(unk,33)
ATRAP(unk,34)
ATRAP(unk,35)
ATRAP(unk,36)
ATRAP(unk,37)
ATRAP(unk,38)
ATRAP(unk,39)
ATRAP(unk,40)
ATRAP(unk,41)
ATRAP(unk,42)
ATRAP(unk,43)
ATRAP(unk,44)
ATRAP(unk,45)
ATRAP(unk,46)
ATRAP(unk,47)
ATRAP(unk,48)
ATRAP(unk,49)
ATRAP(unk,50)
ATRAP(unk,51)
ATRAP(unk,52)
ATRAP(unk,53)
ATRAP(unk,54)
ATRAP(unk,55)
ATRAP(unk,56)
ATRAP(unk,57)
ATRAP(unk,58)
ATRAP(unk,59)
ATRAP(unk,60)
ATRAP(unk,61)
ATRAP(unk,62)
ATRAP(unk,63)
/* 64 */
.size $ivaaddr, .-$ivaaddr
.size ivaaddr, .-ivaaddr
/*
* This is the locore support for HPMC and TOC machine checks.
@ -797,8 +797,8 @@ ALTENTRY(os_hpmc_cont)
mtsp %r1, %sr7
/* Reload the Interruption Vector Address. */
ldil L%$ivaaddr, %r1
ldo R%$ivaaddr(%r1), %r1
ldil L%ivaaddr, %r1
ldo R%ivaaddr(%r1), %r1
mtctl %r1, %iva
/* Reload the HPT base and mask. */
@ -830,7 +830,7 @@ ALTENTRY(os_hpmc_cont)
stwm %r1, HPPA_FRAME_SIZE(%sp)
/* If this is a TOC, remap the kernel. */
comib,<>,n T_INTERRUPT, %arg0, $check_do_rfi
comib,<>,n T_INTERRUPT, %arg0, L$check_do_rfi
/* Clear kernelmapped. */
ldil L%kernelmapped, %r1
@ -853,7 +853,7 @@ ALTENTRY(os_hpmc_cont)
/* Disable the interrupt queues. */
rsm RESET_PSW, %r0
$check_do_rfi:
L$check_do_rfi:
/* Load IPSW. */
ldil L%kpsw, %r1
@ -908,7 +908,7 @@ LEAF_ENTRY_NOPROFILE(TLABEL(emu))
* If the opcode field is 0xe, then it's an FPU instruction.
*/
extru %arg0, 5, 6, %r1
comib,=,n 4, %r1, $emulate_sfu
comib,=,n 4, %r1, L$emulate_sfu
comib,=,n 0xe, %r1, hppa_fpu_nop0
/*
@ -918,7 +918,7 @@ LEAF_ENTRY_NOPROFILE(TLABEL(emu))
* coprocessor.
*/
extru %arg0, 25, 3, %r1
comib,<<,n 1, %r1, $emulate_coproc
comib,<<,n 1, %r1, L$emulate_coproc
/*
* If we're still here, this is a FPU
@ -949,7 +949,7 @@ LEAF_ENTRY_NOPROFILE(TLABEL(emu))
* an FPU coprocessor.
*/
ALTENTRY(hppa_fpu_nop0)
b,n $emulate_fpu
b,n L$emulate_fpu
/*
* We have a hardware FPU. If it is enabled,
@ -957,7 +957,7 @@ ALTENTRY(hppa_fpu_nop0)
*/
mfctl %ccr, %arg0
extru,= %arg0, 25, 2, %r1
b,n $emulate_fpu
b,n L$emulate_fpu
/*
* The hardware FPU is disabled, so we need to swap
@ -1002,7 +1002,7 @@ ALTENTRY(hppa_fpu_nop0)
* (courtesy of CTRAP), and %arg0 is saved in %tr2
* (courtesy of the sfu/coprocessor dispatcher).
*/
$emulate_sfu:
L$emulate_sfu:
/*
* Currently we just restore %arg0 and
* trap with an illegal instruction.
@ -1017,7 +1017,7 @@ $emulate_sfu:
* (courtesy of CTRAP), and %t1 is saved in %tr2
* (courtesy of the sfu/coprocessor dispatcher).
*/
$emulate_coproc:
L$emulate_coproc:
/*
* Currently we just restore %arg0 and
* trap with an illegal instruction.
@ -1032,7 +1032,7 @@ $emulate_coproc:
* (courtesy of CTRAP), and %t1 is saved in %tr2
* (courtesy of the sfu/coprocessor dispatcher).
*/
$emulate_fpu:
L$emulate_fpu:
/*
* We get back to C via the normal generic trap
* mechanism, as opposed to switching to a special
@ -1052,8 +1052,8 @@ $emulate_fpu:
* sfu and non-FPU instructions again, it assumes
* that these kinds of instructions have already
* been translated into some other trap type (as
* they have, by the above $emulate_sfu and
* $emulate_coproc), and all T_EMULATION | T_USER
* they have, by the above L$emulate_sfu and
* L$emulate_coproc), and all T_EMULATION | T_USER
* traps are FPU instructions that need emulating.
*
* So we just restore %arg0 and trap with
@ -1089,7 +1089,7 @@ LEAF_ENTRY_NOPROFILE(hppa_fpu_swap)
*/
mfctl %ccr, %r1
depi 3, 25, 2, %r1
comb,= %r0, %arg0, $fpu_swap_in
comb,= %r0, %arg0, L$fpu_swap_in
mtctl %r1, %ccr
/*
@ -1142,7 +1142,7 @@ LEAF_ENTRY_NOPROFILE(hppa_fpu_swap)
fdc,m %r1(%arg0)
sync
$fpu_swap_in:
L$fpu_swap_in:
/*
* Stash the incoming user structure in
@ -1158,7 +1158,7 @@ $fpu_swap_in:
* past the swap-in code if it is zero.
*/
ldil L%fpu_cur_uspace, %r1
comb,= %r0, %arg1, $fpu_no_swap_in
comb,= %r0, %arg1, L$fpu_no_swap_in
stw %arg1, R%fpu_cur_uspace(%r1)
/*
@ -1210,7 +1210,7 @@ $fpu_swap_in:
fdc,m %r1(%arg1)
sync
$fpu_swap_done:
L$fpu_swap_done:
/* Increment the switch count and return. */
ldil L%fpu_csw, %r1
@ -1219,12 +1219,12 @@ $fpu_swap_done:
bv %r0(%rp)
stw %arg0, R%fpu_csw(%r1)
$fpu_no_swap_in:
L$fpu_no_swap_in:
/* We didn't swap any FPU state in, so disable the FPU. */
mfctl %ccr, %r1
depi 0, 25, 2, %r1
b $fpu_swap_done
b L$fpu_swap_done
mtctl %r1, %ccr
EXIT(hppa_fpu_swap)
@ -1315,9 +1315,9 @@ itlb_c:
* %r24 = undefined
* %r25 = undefined
*/
LEAF_ENTRY_NOPROFILE($tlbd_s)
ALTENTRY($tlbd_t)
ALTENTRY($tlbd_x)
LEAF_ENTRY_NOPROFILE(TLABEL(tlbd_s))
ALTENTRY(TLABEL(tlbd_t))
ALTENTRY(TLABEL(tlbd_x))
TLB_STATS_PRE(tlbd)
TLB_PULL(1, TLABEL(all))
mfsp %sr1, %r16
@ -1328,7 +1328,7 @@ ALTENTRY($tlbd_x)
TLB_STATS_AFT(tlbd)
rfir
nop
EXIT($tlbd_s)
EXIT(TLABEL(tlbd_s))
/*
* This is a handler for interruption 6, "Instruction TLB miss fault",
@ -1345,9 +1345,9 @@ EXIT($tlbd_s)
* %r24 = undefined
* %r25 = undefined
*/
LEAF_ENTRY_NOPROFILE($itlb_s)
ALTENTRY($itlb_t)
ALTENTRY($itlb_x)
LEAF_ENTRY_NOPROFILE(TLABEL(itlb_s))
ALTENTRY(TLABEL(itlb_t))
ALTENTRY(TLABEL(itlb_x))
TLB_STATS_PRE(itlb)
TLB_PULL(0, TLABEL(all))
extru,= %r25, 5, 1, %r0 /* gate needs a kernel pid */
@ -1360,7 +1360,7 @@ ALTENTRY($itlb_x)
TLB_STATS_AFT(itlb)
rfir
nop
EXIT($itlb_s)
EXIT(TLABEL(itlb_s))
/*
* This is a handler for interruption 15, "Data TLB miss fault",
@ -1377,9 +1377,9 @@ EXIT($itlb_s)
* %r24 = undefined
* %r25 = undefined
*/
LEAF_ENTRY_NOPROFILE($dtlb_s)
ALTENTRY($dtlb_t)
ALTENTRY($dtlb_x)
LEAF_ENTRY_NOPROFILE(TLABEL(dtlb_s))
ALTENTRY(TLABEL(dtlb_t))
ALTENTRY(TLABEL(dtlb_x))
TLB_STATS_PRE(dtlb)
TLB_PULL(0, TLABEL(all))
mfsp %sr1, %r16
@ -1390,16 +1390,16 @@ ALTENTRY($dtlb_x)
TLB_STATS_AFT(dtlb)
rfir
nop
EXIT($dtlb_s)
EXIT(TLABEL(dtlb_s))
LEAF_ENTRY_NOPROFILE($dtlbna_s)
ALTENTRY($itlbna_s)
ALTENTRY($dtlbna_t)
ALTENTRY($itlbna_t)
ALTENTRY($dtlbna_x)
ALTENTRY($itlbna_x)
LEAF_ENTRY_NOPROFILE(TLABEL(dtlbna_s))
ALTENTRY(TLABEL(itlbna_s))
ALTENTRY(TLABEL(dtlbna_t))
ALTENTRY(TLABEL(itlbna_t))
ALTENTRY(TLABEL(dtlbna_x))
ALTENTRY(TLABEL(itlbna_x))
TLB_STATS_PRE(dtlb)
TLB_PULL(0, $dtlbna_t_fake)
TLB_PULL(0, L$dtlbna_t_fake)
mfsp %sr1, %r16
mtsp %r8, %sr1
idtlba %r17,(%sr1, %r9)
@ -1408,8 +1408,8 @@ ALTENTRY($itlbna_x)
TLB_STATS_AFT(dtlb)
rfir
nop
$dtlbna_s_fake:
$dtlbna_t_fake:
L$dtlbna_s_fake:
L$dtlbna_t_fake:
/* parse prober/w insns, have to decent to trap() to set regs proper */
mfctl %iir, %r16
extru %r16, 6, 6, %r24
@ -1430,7 +1430,7 @@ $dtlbna_t_fake:
TLB_STATS_AFT(dtlb)
rfir
nop
EXIT($dtlbna_s)
EXIT(TLABEL(dtlbna_s))
#endif /* defined(HP7000_CPU) || defined(HP7100_CPU) || defined(HP7200_CPU) */
@ -1500,7 +1500,7 @@ EXIT($dtlbna_s)
*/
.align 32
LEAF_ENTRY_NOPROFILE($tlbd_l)
LEAF_ENTRY_NOPROFILE(TLABEL(tlbd_l))
TLB_STATS_PRE(tlbd)
TLB_PULL_L(1, TLABEL(all))
IDTLBAF(17)
@ -1516,7 +1516,7 @@ LEAF_ENTRY_NOPROFILE($tlbd_l)
TLB_STATS_AFT(tlbd)
rfir
nop
EXIT($tlbd_l)
EXIT(TLABEL(tlbd_l))
/*
* This is a handler for interruption 6, "Instruction TLB miss fault",
@ -1538,7 +1538,7 @@ EXIT($tlbd_l)
* we found a post-silicon bug that makes cr28
* unreliable for the itlb miss handler
*/
LEAF_ENTRY_NOPROFILE($itlb_l)
LEAF_ENTRY_NOPROFILE(TLABEL(itlb_l))
TLB_STATS_PRE(itlb)
TLB_PULL_L(0, TLABEL(all))
extru,= %r25, 5, 1, %r0 /* gate needs a kernel pid */
@ -1548,18 +1548,18 @@ LEAF_ENTRY_NOPROFILE($itlb_l)
TLB_STATS_AFT(itlb)
rfir
nop
EXIT($itlb_l)
EXIT(TLABEL(itlb_l))
LEAF_ENTRY_NOPROFILE($dtlbna_l)
ALTENTRY($itlbna_l)
LEAF_ENTRY_NOPROFILE(TLABEL(dtlbna_l))
ALTENTRY(TLABEL(itlbna_l))
TLB_STATS_PRE(dtlb)
TLB_PULL_L(0, $dtlbna_l_fake)
TLB_PULL_L(0, L$dtlbna_l_fake)
IDTLBAF(17)
IDTLBPF(25)
TLB_STATS_AFT(dtlb)
rfir
nop
$dtlbna_l_fake:
L$dtlbna_l_fake:
/* parse prober/w insns, have to decent to trap() to set regs proper */
mfctl %iir, %r16
extru %r16, 6, 6, %r24
@ -1577,9 +1577,9 @@ $dtlbna_l_fake:
TLB_STATS_AFT(dtlb)
rfir
nop
EXIT($dtlbna_l)
EXIT(TLABEL(dtlbna_l))
LEAF_ENTRY_NOPROFILE($dtlb_l)
LEAF_ENTRY_NOPROFILE(TLABEL(dtlb_l))
TLB_STATS_PRE(dtlb)
TLB_PULL_L(0, TLABEL(all))
IDTLBAF(17)
@ -1597,7 +1597,7 @@ LEAF_ENTRY_NOPROFILE($dtlb_l)
ldo PAGE_SIZE(%r9), %r9
extru,<> %r9, 20, 5, %r0
b,n $dtlb_done_l /* skip if no simple advance */
b,n L$dtlb_done_l /* skip if no simple advance */
/* do not check the PT overlap since the above
* check already guaranties that */
@ -1605,7 +1605,7 @@ LEAF_ENTRY_NOPROFILE($dtlb_l)
extru %r9, 19, 10, %r16 /* %r24 was loaded in the TLB_PULL_L */
ldwx,s %r16(%r24), %r17 /* va -> pa:prot */
sh2addl %r16, %r24, %r25
combt,=,n %r0, %r17, $dtlb_done_l
combt,=,n %r0, %r17, L$dtlb_done_l
copy %r17, %r16
depi 0, 21, 1, %r17
sub,= %r16, %r17, %r0 /* do not store if unchanged */
@ -1623,12 +1623,12 @@ LEAF_ENTRY_NOPROFILE($dtlb_l)
stw %r16, 0(%r24)
stw %r25, 4(%r24)
stw %r17, 8(%r24)
$dtlb_done_l:
L$dtlb_done_l:
#endif
TLB_STATS_AFT(dtlb)
rfir
nop
EXIT($dtlb_l)
EXIT(TLABEL(dtlb_l))
#endif /* defined(HP7100LC_CPU) || defined(HP7300LC_CPU) */
#if defined(HP8000_CPU) || defined(HP8200_CPU) || defined(HP8500_CPU)
@ -1651,7 +1651,7 @@ EXIT($dtlb_l)
depdi 0, 44, 30, %r25 ! \
depd %r16, 14, 15, %r25
LEAF_ENTRY_NOPROFILE($tlbd_u)
LEAF_ENTRY_NOPROFILE(TLABEL(tlbd_u))
TLB_STATS_PRE(tlbd)
TLB_PULL_L(1, TLABEL(all))
TLB_PCX2PCXU
@ -1659,9 +1659,9 @@ LEAF_ENTRY_NOPROFILE($tlbd_u)
TLB_STATS_AFT(tlbd)
rfir
nop
EXIT($tlbd_u)
EXIT(TLABEL(tlbd_u))
LEAF_ENTRY_NOPROFILE($itlb_u)
LEAF_ENTRY_NOPROFILE(TLABEL(itlb_u))
TLB_STATS_PRE(itlb)
TLB_PULL_L(0, TLABEL(all))
extru,= %r25, 5, 1, %r0 /* gate needs a kernel pid */
@ -1671,18 +1671,18 @@ LEAF_ENTRY_NOPROFILE($itlb_u)
TLB_STATS_AFT(itlb)
rfir
nop
EXIT($itlb_u)
EXIT(TLABEL(itlb_u))
LEAF_ENTRY_NOPROFILE($dtlbna_u)
ALTENTRY($itlbna_u)
LEAF_ENTRY_NOPROFILE(TLABEL(dtlbna_u))
ALTENTRY(TLABEL(itlbna_u))
TLB_STATS_PRE(dtlb)
TLB_PULL_L(0, $dtlbna_u_fake)
TLB_PULL_L(0, L$dtlbna_u_fake)
TLB_PCX2PCXU
idtlbt %r17, %r25
TLB_STATS_AFT(dtlb)
rfir
nop
$dtlbna_u_fake:
L$dtlbna_u_fake:
/* parse prober/w insns, have to decent to trap() to set regs proper */
mfctl %iir, %r16
extru %r16, 6, 6, %r24
@ -1699,9 +1699,9 @@ $dtlbna_u_fake:
TLB_STATS_AFT(dtlb)
rfir
nop
EXIT($dtlbna_u)
EXIT(TLABEL(dtlbna_u))
LEAF_ENTRY_NOPROFILE($dtlb_u)
LEAF_ENTRY_NOPROFILE(TLABEL(dtlb_u))
TLB_STATS_PRE(dtlb)
TLB_PULL_L(0, TLABEL(all))
TLB_PCX2PCXU
@ -1709,7 +1709,7 @@ LEAF_ENTRY_NOPROFILE($dtlb_u)
TLB_STATS_AFT(dtlb)
rfir
nop
EXIT($dtlb_u)
EXIT(TLABEL(dtlb_u))
.level 1.1
#endif /* HP8000_CPU */
@ -1919,8 +1919,8 @@ ENTRY_NOPROFILE(TLABEL(all),0)
/* do not overwrite %tr4(%cr28) it contains the contents of r24 */
mtctl %t3, %tr2
ldil L%$trap_tmp_save, %t3
ldo R%$trap_tmp_save(%t3), %t3
ldil L%L$trap_tmp_save, %t3
ldo R%L$trap_tmp_save(%t3), %t3
stw %t1, TF_R22(%t3) /* use ,bc */
stw %t2, TF_R21(%t3)
@ -1987,7 +1987,7 @@ ENTRY_NOPROFILE(TLABEL(all),0)
/* Nullify if pcoqh & HPPA_PC_PRIV_MASK != 0. */
dep,<> %t1, 31, 2, %r0
/* Branch if (pcoqh & ~PAGE_MASK) != SYSCALLGATE */
comb,<> %t1, %t2, $trap_from_kernel
comb,<> %t1, %t2, L$trap_from_kernel
/* Finish aligning the assumed kernel sp. */
dep %r0, 31, 6, %sp
@ -1996,11 +1996,11 @@ ENTRY_NOPROFILE(TLABEL(all),0)
depi 1, TFF_LAST_POS, 1, %r1
ldw U_PCB+PCB_UVA(%t2), %sp
#ifdef DIAGNOSTIC
b $trap_have_stack
b L$trap_have_stack
#endif
ldo NBPG(%sp), %sp
$trap_from_kernel:
L$trap_from_kernel:
#ifdef DIAGNOSTIC
/*
* Use the emergency stack if we have taken some kind
@ -2013,11 +2013,11 @@ $trap_from_kernel:
dep %r0, 31, PGSHIFT, %t2
comb,=,n %t1, %t2, 0
ldo NBPG(%t1), %t1
comb,<> %t1, %t2, $trap_have_stack
comb,<> %t1, %t2, L$trap_have_stack
mfctl %tr2, %t1
mfctl %isr, %t2
comib,<>,n HPPA_SID_KERNEL, %t2, $trap_have_stack
#define _CHECK_TRAP_TYPE(tt) ldi tt, %t2 ! comb,= %r1, %t2, $trap_kstack_fault
comib,<>,n HPPA_SID_KERNEL, %t2, L$trap_have_stack
#define _CHECK_TRAP_TYPE(tt) ldi tt, %t2 ! comb,= %r1, %t2, L$trap_kstack_fault
_CHECK_TRAP_TYPE(T_ITLBMISS)
_CHECK_TRAP_TYPE(T_DTLBMISS)
_CHECK_TRAP_TYPE(T_ITLBMISSNA)
@ -2026,15 +2026,15 @@ $trap_from_kernel:
_CHECK_TRAP_TYPE(T_DATACC)
_CHECK_TRAP_TYPE(T_DATAPID)
ldi T_DATALIGN, %t2
comb,<>,n %r1, %t2, $trap_have_stack
comb,<>,n %r1, %t2, L$trap_have_stack
#undef _CHECK_TRAP_TYPE
$trap_kstack_fault:
L$trap_kstack_fault:
ldil L%emergency_stack_start, %sp
ldo R%emergency_stack_start(%sp), %sp
$trap_have_stack:
L$trap_have_stack:
#endif
ldil L%$trapnowvirt, %t2
ldo R%$trapnowvirt(%t2), %t2
ldil L%trapnowvirt, %t2
ldo R%trapnowvirt(%t2), %t2
mtctl %t2, %pcoq
stw %t1, TF_IIOQH(%t3)
ldo 4(%t2), %t2
@ -2064,14 +2064,14 @@ $trap_have_stack:
#if defined(DDB) || defined(KGDB)
/*
* Match the offset from %sp for the trapframe with $syscall
* Match the offset from %sp for the trapframe with syscall_entry
*/
ldo HPPA_FRAME_MAXARGS+HPPA_FRAME_SIZE-1(%sp),%sp
depi 0, 31, 6, %sp
#endif
rfir
nop ! nop ! nop ! nop ! nop ! nop ! nop ! nop
$trapnowvirt:
trapnowvirt:
/*
* t3 contains the virtual address of the trapframe
* sp is loaded w/ the right VA (we did not need it being physical)
@ -2136,8 +2136,8 @@ $trapnowvirt:
/*
* Copy partially saved state from the store into the frame
*/
ldil L%$trap_tmp_save, %t2
ldo R%$trap_tmp_save(%t2), %t2
ldil L%L$trap_tmp_save, %t2
ldo R%L$trap_tmp_save(%t2), %t2
/* use ,bc each line */
ldw 0(%t2), %r1 ! ldw 4(%t2), %t1 ! stw %r1, 0(%t3) ! stw %t1, 4(%t3)
ldw 8(%t2), %r1 ! ldw 12(%t2), %t1 ! stw %r1, 8(%t3) ! stw %t1, 12(%t3)
@ -2234,20 +2234,22 @@ $trapnowvirt:
ldw -HPPA_FRAME_SIZE+4(%sp), %t3
/* see if curlwp has changed */
ldw TF_FLAGS(%t3), %arg0
bb,>=,n %arg0, TFF_LAST_POS, $trap_return
bb,>=,n %arg0, TFF_LAST_POS, L$trap_return
nop
mfctl CR_CURLWP, %t2
ldw L_MD(%t2), %t3
$trap_return:
ldil L%$syscall_return, %t1
ldo R%$syscall_return(%t1), %t1
L$trap_return:
ldil L%syscall_return, %t1
ldo R%syscall_return(%t1), %t1
bv,n %r0(%t1)
nop
.export $trap$all$end, entry
$trap$all$end:
#if 0
.export T$trap$all$end, entry
T$trap$all$end:
#endif
EXIT(TLABEL(all))
.align 32
@ -2256,41 +2258,41 @@ ENTRY_NOPROFILE(TLABEL(ibrk),0)
/* If called by a user process then always pass it to trap() */
mfctl %pcoq, %r8
extru,= %r8, 31, 2, %r0
b,n $ibrk_bad
b,n L$ibrk_bad
/* don't accept breaks from data segments */
.import etext
ldil L%etext, %r9
ldo R%etext(%r9), %r9
comb,>>=,n %r8, %r9, $ibrk_bad
comb,>>=,n %r8, %r9, L$ibrk_bad
mfctl %iir, %r8
extru %r8, 31, 5, %r9
comib,<>,n HPPA_BREAK_KERNEL, %r9, $ibrk_bad
comib,<>,n HPPA_BREAK_KERNEL, %r9, L$ibrk_bad
/* now process all those `break' calls we make */
extru %r8, 18, 13, %r9
comib,=,n HPPA_BREAK_GET_PSW, %r9, $ibrk_getpsw
comib,=,n HPPA_BREAK_SET_PSW, %r9, $ibrk_setpsw
comib,=,n HPPA_BREAK_GET_PSW, %r9, L$ibrk_getpsw
comib,=,n HPPA_BREAK_SET_PSW, %r9, L$ibrk_setpsw
$ibrk_bad:
L$ibrk_bad:
/* illegal (unimplemented) break entry point */
b TLABEL(all)
nop
$ibrk_getpsw:
b $ibrk_exit
L$ibrk_getpsw:
b L$ibrk_exit
mfctl %ipsw, %ret0
$ibrk_setpsw:
L$ibrk_setpsw:
mfctl %ipsw, %ret0
b $ibrk_exit
b L$ibrk_exit
mtctl %arg0, %ipsw
/* insert other fast breaks here */
nop ! nop
$ibrk_exit:
L$ibrk_exit:
/* skip the break */
mtctl %r0, %pcoq
mfctl %pcoq, %r9