mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-02 19:22:47 +00:00
- Rename the _C_LABEL macro to CNAME.
- Rename the _ASM_LABEL macro to ASMNAME. - Add the HIDENAME macro which is used in libc's syscall stuff.
This commit is contained in:
parent
b477159065
commit
96269f7e26
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=96773
@ -76,8 +76,8 @@ GLOBAL(intr_depth)
|
||||
* traps when using IPKDB).
|
||||
*/
|
||||
.text
|
||||
.globl _C_LABEL(trapcode),_C_LABEL(trapsize)
|
||||
_C_LABEL(trapcode):
|
||||
.globl CNAME(trapcode),CNAME(trapsize)
|
||||
CNAME(trapcode):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -91,13 +91,13 @@ _C_LABEL(trapcode):
|
||||
addi 1,1,USPACE /* stack is top of user struct */
|
||||
1:
|
||||
bla s_trap
|
||||
_C_LABEL(trapsize) = .-_C_LABEL(trapcode)
|
||||
CNAME(trapsize) = .-CNAME(trapcode)
|
||||
|
||||
/*
|
||||
* For ALI: has to save DSISR and DAR
|
||||
*/
|
||||
.globl _C_LABEL(alitrap),_C_LABEL(alisize)
|
||||
_C_LABEL(alitrap):
|
||||
.globl CNAME(alitrap),CNAME(alisize)
|
||||
CNAME(alitrap):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mfdar 30
|
||||
@ -114,15 +114,15 @@ _C_LABEL(alitrap):
|
||||
addi 1,1,USPACE /* stack is top of user struct */
|
||||
1:
|
||||
bla s_trap
|
||||
_C_LABEL(alisize) = .-_C_LABEL(alitrap)
|
||||
CNAME(alisize) = .-CNAME(alitrap)
|
||||
|
||||
/*
|
||||
* Similar to the above for DSI
|
||||
* Has to handle BAT spills
|
||||
* and standard pagetable spills
|
||||
*/
|
||||
.globl _C_LABEL(dsitrap),_C_LABEL(dsisize)
|
||||
_C_LABEL(dsitrap):
|
||||
.globl CNAME(dsitrap),CNAME(dsisize)
|
||||
CNAME(dsitrap):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mfcr 29 /* save CR */
|
||||
mfxer 30 /* save XER */
|
||||
@ -134,13 +134,13 @@ _C_LABEL(dsitrap):
|
||||
rlwinm 31,31,7,25,28 /* get segment * 8 */
|
||||
|
||||
/* get batu */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)@l(31)
|
||||
mtcr 30
|
||||
bc 4,30,1f /* branch if supervisor valid is
|
||||
false */
|
||||
/* get batl */
|
||||
lwz 31,_C_LABEL(battable)+4@l(31)
|
||||
lwz 31,CNAME(battable)+4@l(31)
|
||||
/* We randomly use the highest two bat registers here */
|
||||
mftb 28
|
||||
andi. 28,28,1
|
||||
@ -160,15 +160,15 @@ _C_LABEL(dsitrap):
|
||||
1:
|
||||
mflr 28 /* save LR */
|
||||
bla s_dsitrap
|
||||
_C_LABEL(dsisize) = .-_C_LABEL(dsitrap)
|
||||
CNAME(dsisize) = .-CNAME(dsitrap)
|
||||
|
||||
/*
|
||||
* Dedicated MPC601 version of the above.
|
||||
* Considers different BAT format and combined implementation
|
||||
* (being addressed as I-BAT).
|
||||
*/
|
||||
.globl _C_LABEL(dsitrap601),_C_LABEL(dsi601size)
|
||||
_C_LABEL(dsitrap601):
|
||||
.globl CNAME(dsitrap601),CNAME(dsi601size)
|
||||
CNAME(dsitrap601):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mfcr 29 /* save CR */
|
||||
mfxer 30 /* save XER */
|
||||
@ -180,14 +180,14 @@ _C_LABEL(dsitrap601):
|
||||
rlwinm 31,31,12,20,28 /* get "segment" battable offset */
|
||||
|
||||
/* get batl */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)+4@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)+4@l(31)
|
||||
mtcr 30
|
||||
bc 4,25,1f /* branch if Valid is is false,
|
||||
presently assumes supervisor only */
|
||||
|
||||
/* get batu */
|
||||
lwz 31,_C_LABEL(battable)@l(31)
|
||||
lwz 31,CNAME(battable)@l(31)
|
||||
/* We randomly use the highest two bat registers here */
|
||||
mfspr 28,SPR_RTCL_R
|
||||
andi. 28,28,128
|
||||
@ -207,13 +207,13 @@ _C_LABEL(dsitrap601):
|
||||
1:
|
||||
mflr 28 /* save LR */
|
||||
bla s_dsitrap
|
||||
_C_LABEL(dsi601size) = .-_C_LABEL(dsitrap601)
|
||||
CNAME(dsi601size) = .-CNAME(dsitrap601)
|
||||
|
||||
/*
|
||||
* Similar to the above for ISI
|
||||
*/
|
||||
.globl _C_LABEL(isitrap),_C_LABEL(isisize)
|
||||
_C_LABEL(isitrap):
|
||||
.globl CNAME(isitrap),CNAME(isisize)
|
||||
CNAME(isitrap):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
mfcr 29 /* save CR */
|
||||
@ -224,15 +224,15 @@ _C_LABEL(isitrap):
|
||||
rlwinm 31,31,7,25,28 /* get segment * 8 */
|
||||
|
||||
/* get batu */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)@l(31)
|
||||
mtcr 30
|
||||
bc 4,30,1f /* branch if supervisor valid is
|
||||
false */
|
||||
mtibatu 3,30
|
||||
|
||||
/* get batl */
|
||||
lwz 30,_C_LABEL(battable)+4@l(31)
|
||||
lwz 30,CNAME(battable)+4@l(31)
|
||||
mtibatl 3,30
|
||||
|
||||
mtcr 29 /* restore CR */
|
||||
@ -240,14 +240,14 @@ _C_LABEL(isitrap):
|
||||
rfi /* return to trapped code */
|
||||
1:
|
||||
bla s_isitrap
|
||||
_C_LABEL(isisize)= .-_C_LABEL(isitrap)
|
||||
CNAME(isisize)= .-CNAME(isitrap)
|
||||
|
||||
/*
|
||||
* Dedicated MPC601 version of the above.
|
||||
* Considers different BAT format.
|
||||
*/
|
||||
.globl _C_LABEL(isitrap601),_C_LABEL(isi601size)
|
||||
_C_LABEL(isitrap601):
|
||||
.globl CNAME(isitrap601),CNAME(isi601size)
|
||||
CNAME(isitrap601):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
mfcr 29 /* save CR */
|
||||
@ -258,13 +258,13 @@ _C_LABEL(isitrap601):
|
||||
rlwinm 31,31,12,20,28 /* get "segment" battable offset */
|
||||
|
||||
/* get batl */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)+4@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)+4@l(31)
|
||||
mtcr 30
|
||||
bc 4,25,1f /* branch if Valid is is false,
|
||||
presently assumes supervisor only */
|
||||
/* get batu */
|
||||
lwz 31,_C_LABEL(battable)@l(31)
|
||||
lwz 31,CNAME(battable)@l(31)
|
||||
|
||||
mtibatu 3,31
|
||||
mtibatl 3,30
|
||||
@ -274,13 +274,13 @@ _C_LABEL(isitrap601):
|
||||
rfi /* return to trapped code */
|
||||
1:
|
||||
bla s_isitrap
|
||||
_C_LABEL(isi601size)= .-_C_LABEL(isitrap601)
|
||||
CNAME(isi601size)= .-CNAME(isitrap601)
|
||||
|
||||
/*
|
||||
* This one for the external interrupt handler.
|
||||
*/
|
||||
.globl _C_LABEL(extint),_C_LABEL(extsize)
|
||||
_C_LABEL(extint):
|
||||
.globl CNAME(extint),CNAME(extsize)
|
||||
CNAME(extint):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -295,13 +295,13 @@ _C_LABEL(extint):
|
||||
mfsprg 1,1 /* yes, get old SP */
|
||||
1:
|
||||
ba extintr
|
||||
_C_LABEL(extsize) = .-_C_LABEL(extint)
|
||||
CNAME(extsize) = .-CNAME(extint)
|
||||
|
||||
/*
|
||||
* And this one for the decrementer interrupt handler.
|
||||
*/
|
||||
.globl _C_LABEL(decrint),_C_LABEL(decrsize)
|
||||
_C_LABEL(decrint):
|
||||
.globl CNAME(decrint),CNAME(decrsize)
|
||||
CNAME(decrint):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -316,7 +316,7 @@ _C_LABEL(decrint):
|
||||
mfsprg 1,1 /* yes, get old SP */
|
||||
1:
|
||||
ba decrintr
|
||||
_C_LABEL(decrsize) = .-_C_LABEL(decrint)
|
||||
CNAME(decrsize) = .-CNAME(decrint)
|
||||
|
||||
/*
|
||||
* Now the tlb software load for 603 processors:
|
||||
@ -324,8 +324,8 @@ _C_LABEL(decrsize) = .-_C_LABEL(decrint)
|
||||
* corrected a lot.)
|
||||
*/
|
||||
|
||||
.globl _C_LABEL(tlbimiss),_C_LABEL(tlbimsize)
|
||||
_C_LABEL(tlbimiss):
|
||||
.globl CNAME(tlbimiss),CNAME(tlbimsize)
|
||||
CNAME(tlbimiss):
|
||||
#ifdef PMAPDEBUG
|
||||
mfspr 2,SPR_IMISS /* exception address */
|
||||
li 1,24 /* get rid of the lower */
|
||||
@ -396,10 +396,10 @@ _C_LABEL(tlbimiss):
|
||||
mtmsr 0 /* now with native gprs */
|
||||
isync
|
||||
ba EXC_ISI
|
||||
_C_LABEL(tlbimsize) = .-_C_LABEL(tlbimiss)
|
||||
CNAME(tlbimsize) = .-CNAME(tlbimiss)
|
||||
|
||||
.globl _C_LABEL(tlbdlmiss),_C_LABEL(tlbdlmsize)
|
||||
_C_LABEL(tlbdlmiss):
|
||||
.globl CNAME(tlbdlmiss),CNAME(tlbdlmsize)
|
||||
CNAME(tlbdlmiss):
|
||||
mfspr 2,SPR_HASH1 /* get first pointer */
|
||||
li 1,8
|
||||
mfctr 0 /* save counter */
|
||||
@ -447,10 +447,10 @@ _C_LABEL(tlbdlmiss):
|
||||
mtmsr 0 /* now with native gprs */
|
||||
isync
|
||||
ba EXC_DSI
|
||||
_C_LABEL(tlbdlmsize) = .-_C_LABEL(tlbdlmiss)
|
||||
CNAME(tlbdlmsize) = .-CNAME(tlbdlmiss)
|
||||
|
||||
.globl _C_LABEL(tlbdsmiss),_C_LABEL(tlbdsmsize)
|
||||
_C_LABEL(tlbdsmiss):
|
||||
.globl CNAME(tlbdsmiss),CNAME(tlbdsmsize)
|
||||
CNAME(tlbdsmiss):
|
||||
mfspr 2,SPR_HASH1 /* get first pointer */
|
||||
li 1,8
|
||||
mfctr 0 /* save counter */
|
||||
@ -522,7 +522,7 @@ _C_LABEL(tlbdsmiss):
|
||||
mtmsr 0 /* now with native gprs */
|
||||
isync
|
||||
ba EXC_DSI
|
||||
_C_LABEL(tlbdsmsize) = .-_C_LABEL(tlbdsmiss)
|
||||
CNAME(tlbdsmsize) = .-CNAME(tlbdsmiss)
|
||||
|
||||
#if defined(DDB) || defined(KGDB)
|
||||
#define ddbsave 0xde0 /* primary save area for DDB */
|
||||
@ -532,8 +532,8 @@ _C_LABEL(tlbdsmsize) = .-_C_LABEL(tlbdsmiss)
|
||||
.local ddbstk
|
||||
.comm ddbstk,INTSTK,8 /* ddb stack */
|
||||
|
||||
.globl _C_LABEL(ddblow),_C_LABEL(ddbsize)
|
||||
_C_LABEL(ddblow):
|
||||
.globl CNAME(ddblow),CNAME(ddbsize)
|
||||
CNAME(ddblow):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,ddbsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -541,7 +541,7 @@ _C_LABEL(ddblow):
|
||||
lis 1,ddbstk+INTSTK@ha /* get new SP */
|
||||
addi 1,1,ddbstk+INTSTK@l
|
||||
bla ddbtrap
|
||||
_C_LABEL(ddbsize) = .-_C_LABEL(ddblow)
|
||||
CNAME(ddbsize) = .-CNAME(ddblow)
|
||||
#endif /* DDB | KGDB */
|
||||
|
||||
#ifdef IPKDB
|
||||
@ -553,8 +553,8 @@ _C_LABEL(ddbsize) = .-_C_LABEL(ddblow)
|
||||
.local ipkdbstk
|
||||
.comm ipkdbstk,INTSTK,8 /* ipkdb stack */
|
||||
|
||||
.globl _C_LABEL(ipkdblow),_C_LABEL(ipkdbsize)
|
||||
_C_LABEL(ipkdblow):
|
||||
.globl CNAME(ipkdblow),CNAME(ipkdbsize)
|
||||
CNAME(ipkdblow):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,ipkdbsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -562,7 +562,7 @@ _C_LABEL(ipkdblow):
|
||||
lis 1,ipkdbstk+INTSTK@ha /* get new SP */
|
||||
addi 1,1,ipkdbstk+INTSTK@l
|
||||
bla ipkdbtrap
|
||||
_C_LABEL(ipkdbsize) = .-_C_LABEL(ipkdblow)
|
||||
CNAME(ipkdbsize) = .-CNAME(ipkdblow)
|
||||
#endif /* IPKDB */
|
||||
|
||||
/*
|
||||
@ -720,9 +720,9 @@ s_trap:
|
||||
/* Call C trap code: */
|
||||
trapagain:
|
||||
addi 3,1,8
|
||||
bl _C_LABEL(trap)
|
||||
.globl _C_LABEL(trapexit)
|
||||
_C_LABEL(trapexit):
|
||||
bl CNAME(trap)
|
||||
.globl CNAME(trapexit)
|
||||
CNAME(trapexit):
|
||||
/* Disable interrupts: */
|
||||
mfmsr 3
|
||||
andi. 3,3,~PSL_EE@l
|
||||
@ -731,8 +731,8 @@ _C_LABEL(trapexit):
|
||||
lwz 5,FRAME_SRR1+8(1)
|
||||
mtcr 5
|
||||
bc 4,17,1f /* branch if PSL_PR is false */
|
||||
lis 3,_C_LABEL(astpending)@ha
|
||||
lwz 4,_C_LABEL(astpending)@l(3)
|
||||
lis 3,CNAME(astpending)@ha
|
||||
lwz 4,CNAME(astpending)@l(3)
|
||||
andi. 4,4,1
|
||||
beq 1f
|
||||
li 6,EXC_AST
|
||||
@ -769,7 +769,7 @@ s_dsitrap:
|
||||
mfctr 31 /* & CTR */
|
||||
mfdar 3
|
||||
s_pte_spill:
|
||||
bl _C_LABEL(pmap_pte_spill) /* try a spill */
|
||||
bl CNAME(pmap_pte_spill) /* try a spill */
|
||||
or. 3,3,3
|
||||
mtctr 31 /* restore CTR */
|
||||
mtlr 30 /* and trap type */
|
||||
@ -847,8 +847,8 @@ s_isitrap:
|
||||
stw 30,IFRAME_XER(1); /* saved XER */ \
|
||||
lmw 28,tempsave(0); /* restore r28-r31 */ \
|
||||
mfctr 6; \
|
||||
lis 5,_C_LABEL(intr_depth)@ha; \
|
||||
lwz 5,_C_LABEL(intr_depth)@l(5); \
|
||||
lis 5,CNAME(intr_depth)@ha; \
|
||||
lwz 5,CNAME(intr_depth)@l(5); \
|
||||
mfsrr0 4; \
|
||||
mfsrr1 3; \
|
||||
stw 6,IFRAME_CTR(1); \
|
||||
@ -876,11 +876,11 @@ s_isitrap:
|
||||
mtmsr 5; \
|
||||
isync
|
||||
|
||||
.globl _C_LABEL(extint_call)
|
||||
.globl CNAME(extint_call)
|
||||
extintr:
|
||||
INTRENTER
|
||||
_C_LABEL(extint_call):
|
||||
bl _C_LABEL(extint_call) /* to be filled in later */
|
||||
CNAME(extint_call):
|
||||
bl CNAME(extint_call) /* to be filled in later */
|
||||
|
||||
intr_exit:
|
||||
/* Disable interrupts (should already be disabled) and MMU here: */
|
||||
@ -926,8 +926,8 @@ intr_exit:
|
||||
mtsr 7,4 /* Restore SR7 */
|
||||
lwz 3,PM_KERNELSR(3)
|
||||
mtsr KERNEL_SR,3 /* Restore kernel SR */
|
||||
lis 3,_C_LABEL(astpending)@ha /* Test AST pending */
|
||||
lwz 4,_C_LABEL(astpending)@l(3)
|
||||
lis 3,CNAME(astpending)@ha /* Test AST pending */
|
||||
lwz 4,CNAME(astpending)@l(3)
|
||||
andi. 4,4,1
|
||||
beq 1f
|
||||
/* Setup for entry to realtrap: */
|
||||
@ -943,10 +943,10 @@ intr_exit:
|
||||
lwz 4,IFRAME_R4(1)
|
||||
lwz 3,IFRAME_R3(1)
|
||||
lwz 0,IFRAME_R0(1)
|
||||
lis 30,_C_LABEL(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 31,_C_LABEL(intr_depth)@l(30)
|
||||
lis 30,CNAME(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 31,CNAME(intr_depth)@l(30)
|
||||
addi 31,31,-1
|
||||
stw 31,_C_LABEL(intr_depth)@l(30)
|
||||
stw 31,CNAME(intr_depth)@l(30)
|
||||
b realtrap
|
||||
1:
|
||||
/* Here is the normal exit of extintr: */
|
||||
@ -956,10 +956,10 @@ intr_exit:
|
||||
mtlr 6
|
||||
lwz 6,IFRAME_R6(1)
|
||||
lwz 5,IFRAME_R5(1)
|
||||
lis 3,_C_LABEL(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 4,_C_LABEL(intr_depth)@l(3)
|
||||
lis 3,CNAME(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 4,CNAME(intr_depth)@l(3)
|
||||
addi 4,4,-1
|
||||
stw 4,_C_LABEL(intr_depth)@l(3)
|
||||
stw 4,CNAME(intr_depth)@l(3)
|
||||
lwz 4,IFRAME_R4(1)
|
||||
lwz 3,IFRAME_R3(1)
|
||||
lwz 0,IFRAME_R0(1)
|
||||
@ -972,15 +972,15 @@ intr_exit:
|
||||
decrintr:
|
||||
INTRENTER
|
||||
addi 3,1,8 /* intr frame -> clock frame */
|
||||
bl _C_LABEL(decr_intr)
|
||||
bl CNAME(decr_intr)
|
||||
b intr_exit
|
||||
|
||||
#if defined(DDB)
|
||||
/*
|
||||
* Deliberate entry to ddbtrap
|
||||
*/
|
||||
.globl _C_LABEL(ddb_trap)
|
||||
_C_LABEL(ddb_trap):
|
||||
.globl CNAME(ddb_trap)
|
||||
CNAME(ddb_trap):
|
||||
mtsprg 1,1
|
||||
mfmsr 3
|
||||
mtsrr1 3
|
||||
@ -1003,7 +1003,7 @@ ddbtrap:
|
||||
FRAME_SETUP(ddbsave)
|
||||
/* Call C trap code: */
|
||||
addi 3,1,8
|
||||
bl _C_LABEL(ddb_trap_glue)
|
||||
bl CNAME(ddb_trap_glue)
|
||||
or. 3,3,3
|
||||
bne ddbleave
|
||||
/* This wasn't for DDB, so switch to real trap: */
|
||||
@ -1026,8 +1026,8 @@ ddbleave:
|
||||
/*
|
||||
* Deliberate entry to ipkdbtrap
|
||||
*/
|
||||
.globl _C_LABEL(ipkdb_trap)
|
||||
_C_LABEL(ipkdb_trap):
|
||||
.globl CNAME(ipkdb_trap)
|
||||
CNAME(ipkdb_trap):
|
||||
mtsprg 1,1
|
||||
mfmsr 3
|
||||
mtsrr1 3
|
||||
@ -1048,7 +1048,7 @@ ipkdbtrap:
|
||||
FRAME_SETUP(ipkdbsave)
|
||||
/* Call C trap code: */
|
||||
addi 3,1,8
|
||||
bl _C_LABEL(ipkdb_trap_glue)
|
||||
bl CNAME(ipkdb_trap_glue)
|
||||
or. 3,3,3
|
||||
bne ipkdbleave
|
||||
/* This wasn't for IPKDB, so switch to real trap: */
|
||||
@ -1078,16 +1078,16 @@ _ipkdbfault:
|
||||
/*
|
||||
* int ipkdbfbyte(unsigned char *p)
|
||||
*/
|
||||
.globl _C_LABEL(ipkdbfbyte)
|
||||
_C_LABEL(ipkdbfbyte):
|
||||
.globl CNAME(ipkdbfbyte)
|
||||
CNAME(ipkdbfbyte):
|
||||
li 9,EXC_DSI /* establish new fault routine */
|
||||
lwz 5,0(9)
|
||||
lis 6,ipkdbfault@ha
|
||||
lwz 6,ipkdbfault@l(6)
|
||||
stw 6,0(9)
|
||||
#ifdef IPKDBUSERHACK
|
||||
lis 8,_C_LABEL(ipkdbsr)@ha
|
||||
lwz 8,_C_LABEL(ipkdbsr)@l(8)
|
||||
lis 8,CNAME(ipkdbsr)@ha
|
||||
lwz 8,CNAME(ipkdbsr)@l(8)
|
||||
mtsr USER_SR,8
|
||||
isync
|
||||
#endif
|
||||
@ -1104,16 +1104,16 @@ _C_LABEL(ipkdbfbyte):
|
||||
/*
|
||||
* int ipkdbsbyte(unsigned char *p, int c)
|
||||
*/
|
||||
.globl _C_LABEL(ipkdbsbyte)
|
||||
_C_LABEL(ipkdbsbyte):
|
||||
.globl CNAME(ipkdbsbyte)
|
||||
CNAME(ipkdbsbyte):
|
||||
li 9,EXC_DSI /* establish new fault routine */
|
||||
lwz 5,0(9)
|
||||
lis 6,ipkdbfault@ha
|
||||
lwz 6,ipkdbfault@l(6)
|
||||
stw 6,0(9)
|
||||
#ifdef IPKDBUSERHACK
|
||||
lis 8,_C_LABEL(ipkdbsr)@ha
|
||||
lwz 8,_C_LABEL(ipkdbsr)@l(8)
|
||||
lis 8,CNAME(ipkdbsr)@ha
|
||||
lwz 8,CNAME(ipkdbsr)@l(8)
|
||||
mtsr USER_SR,8
|
||||
isync
|
||||
#endif
|
||||
|
@ -54,8 +54,9 @@
|
||||
#define PIC_GOTOFF(x) x
|
||||
#endif
|
||||
|
||||
#define _C_LABEL(x) x
|
||||
#define _ASM_LABEL(x) x
|
||||
#define CNAME(csym) csym
|
||||
#define ASMNAME(asmsym) asmsym
|
||||
#define HIDENAME(asmsym) __CONCAT(.,asmsym)
|
||||
|
||||
#define _GLOBAL(x) \
|
||||
.data; .align 2; .globl x; x:
|
||||
@ -69,9 +70,9 @@
|
||||
# define _PROF_PROLOGUE
|
||||
#endif
|
||||
|
||||
#define ENTRY(y) _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
|
||||
#define ASENTRY(y) _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
|
||||
#define GLOBAL(y) _GLOBAL(_C_LABEL(y))
|
||||
#define ENTRY(y) _ENTRY(CNAME(y)); _PROF_PROLOGUE
|
||||
#define ASENTRY(y) _ENTRY(ASMNAME(y)); _PROF_PROLOGUE
|
||||
#define GLOBAL(y) _GLOBAL(CNAME(y))
|
||||
|
||||
#define ASMSTR .asciz
|
||||
|
||||
|
@ -42,8 +42,8 @@
|
||||
* On entry r1 points to a struct sigframe at bottom of current stack.
|
||||
* All other registers are unchanged.
|
||||
*/
|
||||
.globl _C_LABEL(sigcode),_C_LABEL(szsigcode)
|
||||
_C_LABEL(sigcode):
|
||||
.globl CNAME(sigcode),CNAME(szsigcode)
|
||||
CNAME(sigcode):
|
||||
addi 1,1,-16 /* reserved space for callee */
|
||||
blrl
|
||||
addi 3,1,16+8 /* compute &sf_sc */
|
||||
@ -51,4 +51,4 @@ _C_LABEL(sigcode):
|
||||
sc /* sigreturn(scp) */
|
||||
li 0,SYS_exit
|
||||
sc /* exit(errno) */
|
||||
_C_LABEL(szsigcode) = . - _C_LABEL(sigcode)
|
||||
CNAME(szsigcode) = . - CNAME(sigcode)
|
||||
|
@ -76,8 +76,8 @@ GLOBAL(intr_depth)
|
||||
* traps when using IPKDB).
|
||||
*/
|
||||
.text
|
||||
.globl _C_LABEL(trapcode),_C_LABEL(trapsize)
|
||||
_C_LABEL(trapcode):
|
||||
.globl CNAME(trapcode),CNAME(trapsize)
|
||||
CNAME(trapcode):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -91,13 +91,13 @@ _C_LABEL(trapcode):
|
||||
addi 1,1,USPACE /* stack is top of user struct */
|
||||
1:
|
||||
bla s_trap
|
||||
_C_LABEL(trapsize) = .-_C_LABEL(trapcode)
|
||||
CNAME(trapsize) = .-CNAME(trapcode)
|
||||
|
||||
/*
|
||||
* For ALI: has to save DSISR and DAR
|
||||
*/
|
||||
.globl _C_LABEL(alitrap),_C_LABEL(alisize)
|
||||
_C_LABEL(alitrap):
|
||||
.globl CNAME(alitrap),CNAME(alisize)
|
||||
CNAME(alitrap):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mfdar 30
|
||||
@ -114,15 +114,15 @@ _C_LABEL(alitrap):
|
||||
addi 1,1,USPACE /* stack is top of user struct */
|
||||
1:
|
||||
bla s_trap
|
||||
_C_LABEL(alisize) = .-_C_LABEL(alitrap)
|
||||
CNAME(alisize) = .-CNAME(alitrap)
|
||||
|
||||
/*
|
||||
* Similar to the above for DSI
|
||||
* Has to handle BAT spills
|
||||
* and standard pagetable spills
|
||||
*/
|
||||
.globl _C_LABEL(dsitrap),_C_LABEL(dsisize)
|
||||
_C_LABEL(dsitrap):
|
||||
.globl CNAME(dsitrap),CNAME(dsisize)
|
||||
CNAME(dsitrap):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mfcr 29 /* save CR */
|
||||
mfxer 30 /* save XER */
|
||||
@ -134,13 +134,13 @@ _C_LABEL(dsitrap):
|
||||
rlwinm 31,31,7,25,28 /* get segment * 8 */
|
||||
|
||||
/* get batu */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)@l(31)
|
||||
mtcr 30
|
||||
bc 4,30,1f /* branch if supervisor valid is
|
||||
false */
|
||||
/* get batl */
|
||||
lwz 31,_C_LABEL(battable)+4@l(31)
|
||||
lwz 31,CNAME(battable)+4@l(31)
|
||||
/* We randomly use the highest two bat registers here */
|
||||
mftb 28
|
||||
andi. 28,28,1
|
||||
@ -160,15 +160,15 @@ _C_LABEL(dsitrap):
|
||||
1:
|
||||
mflr 28 /* save LR */
|
||||
bla s_dsitrap
|
||||
_C_LABEL(dsisize) = .-_C_LABEL(dsitrap)
|
||||
CNAME(dsisize) = .-CNAME(dsitrap)
|
||||
|
||||
/*
|
||||
* Dedicated MPC601 version of the above.
|
||||
* Considers different BAT format and combined implementation
|
||||
* (being addressed as I-BAT).
|
||||
*/
|
||||
.globl _C_LABEL(dsitrap601),_C_LABEL(dsi601size)
|
||||
_C_LABEL(dsitrap601):
|
||||
.globl CNAME(dsitrap601),CNAME(dsi601size)
|
||||
CNAME(dsitrap601):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mfcr 29 /* save CR */
|
||||
mfxer 30 /* save XER */
|
||||
@ -180,14 +180,14 @@ _C_LABEL(dsitrap601):
|
||||
rlwinm 31,31,12,20,28 /* get "segment" battable offset */
|
||||
|
||||
/* get batl */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)+4@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)+4@l(31)
|
||||
mtcr 30
|
||||
bc 4,25,1f /* branch if Valid is is false,
|
||||
presently assumes supervisor only */
|
||||
|
||||
/* get batu */
|
||||
lwz 31,_C_LABEL(battable)@l(31)
|
||||
lwz 31,CNAME(battable)@l(31)
|
||||
/* We randomly use the highest two bat registers here */
|
||||
mfspr 28,SPR_RTCL_R
|
||||
andi. 28,28,128
|
||||
@ -207,13 +207,13 @@ _C_LABEL(dsitrap601):
|
||||
1:
|
||||
mflr 28 /* save LR */
|
||||
bla s_dsitrap
|
||||
_C_LABEL(dsi601size) = .-_C_LABEL(dsitrap601)
|
||||
CNAME(dsi601size) = .-CNAME(dsitrap601)
|
||||
|
||||
/*
|
||||
* Similar to the above for ISI
|
||||
*/
|
||||
.globl _C_LABEL(isitrap),_C_LABEL(isisize)
|
||||
_C_LABEL(isitrap):
|
||||
.globl CNAME(isitrap),CNAME(isisize)
|
||||
CNAME(isitrap):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
mfcr 29 /* save CR */
|
||||
@ -224,15 +224,15 @@ _C_LABEL(isitrap):
|
||||
rlwinm 31,31,7,25,28 /* get segment * 8 */
|
||||
|
||||
/* get batu */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)@l(31)
|
||||
mtcr 30
|
||||
bc 4,30,1f /* branch if supervisor valid is
|
||||
false */
|
||||
mtibatu 3,30
|
||||
|
||||
/* get batl */
|
||||
lwz 30,_C_LABEL(battable)+4@l(31)
|
||||
lwz 30,CNAME(battable)+4@l(31)
|
||||
mtibatl 3,30
|
||||
|
||||
mtcr 29 /* restore CR */
|
||||
@ -240,14 +240,14 @@ _C_LABEL(isitrap):
|
||||
rfi /* return to trapped code */
|
||||
1:
|
||||
bla s_isitrap
|
||||
_C_LABEL(isisize)= .-_C_LABEL(isitrap)
|
||||
CNAME(isisize)= .-CNAME(isitrap)
|
||||
|
||||
/*
|
||||
* Dedicated MPC601 version of the above.
|
||||
* Considers different BAT format.
|
||||
*/
|
||||
.globl _C_LABEL(isitrap601),_C_LABEL(isi601size)
|
||||
_C_LABEL(isitrap601):
|
||||
.globl CNAME(isitrap601),CNAME(isi601size)
|
||||
CNAME(isitrap601):
|
||||
stmw 28,disisave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
mfcr 29 /* save CR */
|
||||
@ -258,13 +258,13 @@ _C_LABEL(isitrap601):
|
||||
rlwinm 31,31,12,20,28 /* get "segment" battable offset */
|
||||
|
||||
/* get batl */
|
||||
addis 31,31,_C_LABEL(battable)@ha
|
||||
lwz 30,_C_LABEL(battable)+4@l(31)
|
||||
addis 31,31,CNAME(battable)@ha
|
||||
lwz 30,CNAME(battable)+4@l(31)
|
||||
mtcr 30
|
||||
bc 4,25,1f /* branch if Valid is is false,
|
||||
presently assumes supervisor only */
|
||||
/* get batu */
|
||||
lwz 31,_C_LABEL(battable)@l(31)
|
||||
lwz 31,CNAME(battable)@l(31)
|
||||
|
||||
mtibatu 3,31
|
||||
mtibatl 3,30
|
||||
@ -274,13 +274,13 @@ _C_LABEL(isitrap601):
|
||||
rfi /* return to trapped code */
|
||||
1:
|
||||
bla s_isitrap
|
||||
_C_LABEL(isi601size)= .-_C_LABEL(isitrap601)
|
||||
CNAME(isi601size)= .-CNAME(isitrap601)
|
||||
|
||||
/*
|
||||
* This one for the external interrupt handler.
|
||||
*/
|
||||
.globl _C_LABEL(extint),_C_LABEL(extsize)
|
||||
_C_LABEL(extint):
|
||||
.globl CNAME(extint),CNAME(extsize)
|
||||
CNAME(extint):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -295,13 +295,13 @@ _C_LABEL(extint):
|
||||
mfsprg 1,1 /* yes, get old SP */
|
||||
1:
|
||||
ba extintr
|
||||
_C_LABEL(extsize) = .-_C_LABEL(extint)
|
||||
CNAME(extsize) = .-CNAME(extint)
|
||||
|
||||
/*
|
||||
* And this one for the decrementer interrupt handler.
|
||||
*/
|
||||
.globl _C_LABEL(decrint),_C_LABEL(decrsize)
|
||||
_C_LABEL(decrint):
|
||||
.globl CNAME(decrint),CNAME(decrsize)
|
||||
CNAME(decrint):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,tempsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -316,7 +316,7 @@ _C_LABEL(decrint):
|
||||
mfsprg 1,1 /* yes, get old SP */
|
||||
1:
|
||||
ba decrintr
|
||||
_C_LABEL(decrsize) = .-_C_LABEL(decrint)
|
||||
CNAME(decrsize) = .-CNAME(decrint)
|
||||
|
||||
/*
|
||||
* Now the tlb software load for 603 processors:
|
||||
@ -324,8 +324,8 @@ _C_LABEL(decrsize) = .-_C_LABEL(decrint)
|
||||
* corrected a lot.)
|
||||
*/
|
||||
|
||||
.globl _C_LABEL(tlbimiss),_C_LABEL(tlbimsize)
|
||||
_C_LABEL(tlbimiss):
|
||||
.globl CNAME(tlbimiss),CNAME(tlbimsize)
|
||||
CNAME(tlbimiss):
|
||||
#ifdef PMAPDEBUG
|
||||
mfspr 2,SPR_IMISS /* exception address */
|
||||
li 1,24 /* get rid of the lower */
|
||||
@ -396,10 +396,10 @@ _C_LABEL(tlbimiss):
|
||||
mtmsr 0 /* now with native gprs */
|
||||
isync
|
||||
ba EXC_ISI
|
||||
_C_LABEL(tlbimsize) = .-_C_LABEL(tlbimiss)
|
||||
CNAME(tlbimsize) = .-CNAME(tlbimiss)
|
||||
|
||||
.globl _C_LABEL(tlbdlmiss),_C_LABEL(tlbdlmsize)
|
||||
_C_LABEL(tlbdlmiss):
|
||||
.globl CNAME(tlbdlmiss),CNAME(tlbdlmsize)
|
||||
CNAME(tlbdlmiss):
|
||||
mfspr 2,SPR_HASH1 /* get first pointer */
|
||||
li 1,8
|
||||
mfctr 0 /* save counter */
|
||||
@ -447,10 +447,10 @@ _C_LABEL(tlbdlmiss):
|
||||
mtmsr 0 /* now with native gprs */
|
||||
isync
|
||||
ba EXC_DSI
|
||||
_C_LABEL(tlbdlmsize) = .-_C_LABEL(tlbdlmiss)
|
||||
CNAME(tlbdlmsize) = .-CNAME(tlbdlmiss)
|
||||
|
||||
.globl _C_LABEL(tlbdsmiss),_C_LABEL(tlbdsmsize)
|
||||
_C_LABEL(tlbdsmiss):
|
||||
.globl CNAME(tlbdsmiss),CNAME(tlbdsmsize)
|
||||
CNAME(tlbdsmiss):
|
||||
mfspr 2,SPR_HASH1 /* get first pointer */
|
||||
li 1,8
|
||||
mfctr 0 /* save counter */
|
||||
@ -522,7 +522,7 @@ _C_LABEL(tlbdsmiss):
|
||||
mtmsr 0 /* now with native gprs */
|
||||
isync
|
||||
ba EXC_DSI
|
||||
_C_LABEL(tlbdsmsize) = .-_C_LABEL(tlbdsmiss)
|
||||
CNAME(tlbdsmsize) = .-CNAME(tlbdsmiss)
|
||||
|
||||
#if defined(DDB) || defined(KGDB)
|
||||
#define ddbsave 0xde0 /* primary save area for DDB */
|
||||
@ -532,8 +532,8 @@ _C_LABEL(tlbdsmsize) = .-_C_LABEL(tlbdsmiss)
|
||||
.local ddbstk
|
||||
.comm ddbstk,INTSTK,8 /* ddb stack */
|
||||
|
||||
.globl _C_LABEL(ddblow),_C_LABEL(ddbsize)
|
||||
_C_LABEL(ddblow):
|
||||
.globl CNAME(ddblow),CNAME(ddbsize)
|
||||
CNAME(ddblow):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,ddbsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -541,7 +541,7 @@ _C_LABEL(ddblow):
|
||||
lis 1,ddbstk+INTSTK@ha /* get new SP */
|
||||
addi 1,1,ddbstk+INTSTK@l
|
||||
bla ddbtrap
|
||||
_C_LABEL(ddbsize) = .-_C_LABEL(ddblow)
|
||||
CNAME(ddbsize) = .-CNAME(ddblow)
|
||||
#endif /* DDB | KGDB */
|
||||
|
||||
#ifdef IPKDB
|
||||
@ -553,8 +553,8 @@ _C_LABEL(ddbsize) = .-_C_LABEL(ddblow)
|
||||
.local ipkdbstk
|
||||
.comm ipkdbstk,INTSTK,8 /* ipkdb stack */
|
||||
|
||||
.globl _C_LABEL(ipkdblow),_C_LABEL(ipkdbsize)
|
||||
_C_LABEL(ipkdblow):
|
||||
.globl CNAME(ipkdblow),CNAME(ipkdbsize)
|
||||
CNAME(ipkdblow):
|
||||
mtsprg 1,1 /* save SP */
|
||||
stmw 28,ipkdbsave(0) /* free r28-r31 */
|
||||
mflr 28 /* save LR */
|
||||
@ -562,7 +562,7 @@ _C_LABEL(ipkdblow):
|
||||
lis 1,ipkdbstk+INTSTK@ha /* get new SP */
|
||||
addi 1,1,ipkdbstk+INTSTK@l
|
||||
bla ipkdbtrap
|
||||
_C_LABEL(ipkdbsize) = .-_C_LABEL(ipkdblow)
|
||||
CNAME(ipkdbsize) = .-CNAME(ipkdblow)
|
||||
#endif /* IPKDB */
|
||||
|
||||
/*
|
||||
@ -720,9 +720,9 @@ s_trap:
|
||||
/* Call C trap code: */
|
||||
trapagain:
|
||||
addi 3,1,8
|
||||
bl _C_LABEL(trap)
|
||||
.globl _C_LABEL(trapexit)
|
||||
_C_LABEL(trapexit):
|
||||
bl CNAME(trap)
|
||||
.globl CNAME(trapexit)
|
||||
CNAME(trapexit):
|
||||
/* Disable interrupts: */
|
||||
mfmsr 3
|
||||
andi. 3,3,~PSL_EE@l
|
||||
@ -731,8 +731,8 @@ _C_LABEL(trapexit):
|
||||
lwz 5,FRAME_SRR1+8(1)
|
||||
mtcr 5
|
||||
bc 4,17,1f /* branch if PSL_PR is false */
|
||||
lis 3,_C_LABEL(astpending)@ha
|
||||
lwz 4,_C_LABEL(astpending)@l(3)
|
||||
lis 3,CNAME(astpending)@ha
|
||||
lwz 4,CNAME(astpending)@l(3)
|
||||
andi. 4,4,1
|
||||
beq 1f
|
||||
li 6,EXC_AST
|
||||
@ -769,7 +769,7 @@ s_dsitrap:
|
||||
mfctr 31 /* & CTR */
|
||||
mfdar 3
|
||||
s_pte_spill:
|
||||
bl _C_LABEL(pmap_pte_spill) /* try a spill */
|
||||
bl CNAME(pmap_pte_spill) /* try a spill */
|
||||
or. 3,3,3
|
||||
mtctr 31 /* restore CTR */
|
||||
mtlr 30 /* and trap type */
|
||||
@ -847,8 +847,8 @@ s_isitrap:
|
||||
stw 30,IFRAME_XER(1); /* saved XER */ \
|
||||
lmw 28,tempsave(0); /* restore r28-r31 */ \
|
||||
mfctr 6; \
|
||||
lis 5,_C_LABEL(intr_depth)@ha; \
|
||||
lwz 5,_C_LABEL(intr_depth)@l(5); \
|
||||
lis 5,CNAME(intr_depth)@ha; \
|
||||
lwz 5,CNAME(intr_depth)@l(5); \
|
||||
mfsrr0 4; \
|
||||
mfsrr1 3; \
|
||||
stw 6,IFRAME_CTR(1); \
|
||||
@ -876,11 +876,11 @@ s_isitrap:
|
||||
mtmsr 5; \
|
||||
isync
|
||||
|
||||
.globl _C_LABEL(extint_call)
|
||||
.globl CNAME(extint_call)
|
||||
extintr:
|
||||
INTRENTER
|
||||
_C_LABEL(extint_call):
|
||||
bl _C_LABEL(extint_call) /* to be filled in later */
|
||||
CNAME(extint_call):
|
||||
bl CNAME(extint_call) /* to be filled in later */
|
||||
|
||||
intr_exit:
|
||||
/* Disable interrupts (should already be disabled) and MMU here: */
|
||||
@ -926,8 +926,8 @@ intr_exit:
|
||||
mtsr 7,4 /* Restore SR7 */
|
||||
lwz 3,PM_KERNELSR(3)
|
||||
mtsr KERNEL_SR,3 /* Restore kernel SR */
|
||||
lis 3,_C_LABEL(astpending)@ha /* Test AST pending */
|
||||
lwz 4,_C_LABEL(astpending)@l(3)
|
||||
lis 3,CNAME(astpending)@ha /* Test AST pending */
|
||||
lwz 4,CNAME(astpending)@l(3)
|
||||
andi. 4,4,1
|
||||
beq 1f
|
||||
/* Setup for entry to realtrap: */
|
||||
@ -943,10 +943,10 @@ intr_exit:
|
||||
lwz 4,IFRAME_R4(1)
|
||||
lwz 3,IFRAME_R3(1)
|
||||
lwz 0,IFRAME_R0(1)
|
||||
lis 30,_C_LABEL(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 31,_C_LABEL(intr_depth)@l(30)
|
||||
lis 30,CNAME(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 31,CNAME(intr_depth)@l(30)
|
||||
addi 31,31,-1
|
||||
stw 31,_C_LABEL(intr_depth)@l(30)
|
||||
stw 31,CNAME(intr_depth)@l(30)
|
||||
b realtrap
|
||||
1:
|
||||
/* Here is the normal exit of extintr: */
|
||||
@ -956,10 +956,10 @@ intr_exit:
|
||||
mtlr 6
|
||||
lwz 6,IFRAME_R6(1)
|
||||
lwz 5,IFRAME_R5(1)
|
||||
lis 3,_C_LABEL(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 4,_C_LABEL(intr_depth)@l(3)
|
||||
lis 3,CNAME(intr_depth)@ha /* adjust reentrancy count */
|
||||
lwz 4,CNAME(intr_depth)@l(3)
|
||||
addi 4,4,-1
|
||||
stw 4,_C_LABEL(intr_depth)@l(3)
|
||||
stw 4,CNAME(intr_depth)@l(3)
|
||||
lwz 4,IFRAME_R4(1)
|
||||
lwz 3,IFRAME_R3(1)
|
||||
lwz 0,IFRAME_R0(1)
|
||||
@ -972,15 +972,15 @@ intr_exit:
|
||||
decrintr:
|
||||
INTRENTER
|
||||
addi 3,1,8 /* intr frame -> clock frame */
|
||||
bl _C_LABEL(decr_intr)
|
||||
bl CNAME(decr_intr)
|
||||
b intr_exit
|
||||
|
||||
#if defined(DDB)
|
||||
/*
|
||||
* Deliberate entry to ddbtrap
|
||||
*/
|
||||
.globl _C_LABEL(ddb_trap)
|
||||
_C_LABEL(ddb_trap):
|
||||
.globl CNAME(ddb_trap)
|
||||
CNAME(ddb_trap):
|
||||
mtsprg 1,1
|
||||
mfmsr 3
|
||||
mtsrr1 3
|
||||
@ -1003,7 +1003,7 @@ ddbtrap:
|
||||
FRAME_SETUP(ddbsave)
|
||||
/* Call C trap code: */
|
||||
addi 3,1,8
|
||||
bl _C_LABEL(ddb_trap_glue)
|
||||
bl CNAME(ddb_trap_glue)
|
||||
or. 3,3,3
|
||||
bne ddbleave
|
||||
/* This wasn't for DDB, so switch to real trap: */
|
||||
@ -1026,8 +1026,8 @@ ddbleave:
|
||||
/*
|
||||
* Deliberate entry to ipkdbtrap
|
||||
*/
|
||||
.globl _C_LABEL(ipkdb_trap)
|
||||
_C_LABEL(ipkdb_trap):
|
||||
.globl CNAME(ipkdb_trap)
|
||||
CNAME(ipkdb_trap):
|
||||
mtsprg 1,1
|
||||
mfmsr 3
|
||||
mtsrr1 3
|
||||
@ -1048,7 +1048,7 @@ ipkdbtrap:
|
||||
FRAME_SETUP(ipkdbsave)
|
||||
/* Call C trap code: */
|
||||
addi 3,1,8
|
||||
bl _C_LABEL(ipkdb_trap_glue)
|
||||
bl CNAME(ipkdb_trap_glue)
|
||||
or. 3,3,3
|
||||
bne ipkdbleave
|
||||
/* This wasn't for IPKDB, so switch to real trap: */
|
||||
@ -1078,16 +1078,16 @@ _ipkdbfault:
|
||||
/*
|
||||
* int ipkdbfbyte(unsigned char *p)
|
||||
*/
|
||||
.globl _C_LABEL(ipkdbfbyte)
|
||||
_C_LABEL(ipkdbfbyte):
|
||||
.globl CNAME(ipkdbfbyte)
|
||||
CNAME(ipkdbfbyte):
|
||||
li 9,EXC_DSI /* establish new fault routine */
|
||||
lwz 5,0(9)
|
||||
lis 6,ipkdbfault@ha
|
||||
lwz 6,ipkdbfault@l(6)
|
||||
stw 6,0(9)
|
||||
#ifdef IPKDBUSERHACK
|
||||
lis 8,_C_LABEL(ipkdbsr)@ha
|
||||
lwz 8,_C_LABEL(ipkdbsr)@l(8)
|
||||
lis 8,CNAME(ipkdbsr)@ha
|
||||
lwz 8,CNAME(ipkdbsr)@l(8)
|
||||
mtsr USER_SR,8
|
||||
isync
|
||||
#endif
|
||||
@ -1104,16 +1104,16 @@ _C_LABEL(ipkdbfbyte):
|
||||
/*
|
||||
* int ipkdbsbyte(unsigned char *p, int c)
|
||||
*/
|
||||
.globl _C_LABEL(ipkdbsbyte)
|
||||
_C_LABEL(ipkdbsbyte):
|
||||
.globl CNAME(ipkdbsbyte)
|
||||
CNAME(ipkdbsbyte):
|
||||
li 9,EXC_DSI /* establish new fault routine */
|
||||
lwz 5,0(9)
|
||||
lis 6,ipkdbfault@ha
|
||||
lwz 6,ipkdbfault@l(6)
|
||||
stw 6,0(9)
|
||||
#ifdef IPKDBUSERHACK
|
||||
lis 8,_C_LABEL(ipkdbsr)@ha
|
||||
lwz 8,_C_LABEL(ipkdbsr)@l(8)
|
||||
lis 8,CNAME(ipkdbsr)@ha
|
||||
lwz 8,CNAME(ipkdbsr)@l(8)
|
||||
mtsr USER_SR,8
|
||||
isync
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user