More local label fixups.
This commit is contained in:
parent
b96a6bccda
commit
003b8e8bca
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bcopyinout.S,v 1.4 2002/08/15 01:38:16 briggs Exp $ */
|
||||
/* $NetBSD: bcopyinout.S,v 1.5 2002/08/17 16:36:31 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2002 Wasabi Systems, Inc.
|
||||
|
@ -39,12 +39,12 @@
|
|||
|
||||
#include <machine/asm.h>
|
||||
|
||||
RCSID("$NetBSD: bcopyinout.S,v 1.4 2002/08/15 01:38:16 briggs Exp $")
|
||||
RCSID("$NetBSD: bcopyinout.S,v 1.5 2002/08/17 16:36:31 thorpej Exp $")
|
||||
|
||||
.text
|
||||
.align 0
|
||||
|
||||
Lcurpcb:
|
||||
.Lcurpcb:
|
||||
.word _C_LABEL(curpcb)
|
||||
|
||||
#ifdef __PROG32
|
||||
|
@ -80,11 +80,11 @@ ENTRY(copyin)
|
|||
moveq pc, lr
|
||||
|
||||
SAVE_REGS
|
||||
ldr r4, Lcurpcb
|
||||
ldr r4, .Lcurpcb
|
||||
ldr r4, [r4]
|
||||
|
||||
ldr r5, [r4, #PCB_ONFAULT]
|
||||
add r3, pc, #Lcopyfault - . - 8
|
||||
add r3, pc, #.Lcopyfault - . - 8
|
||||
str r3, [r4, #PCB_ONFAULT]
|
||||
|
||||
PREFETCH(r0, 0)
|
||||
|
@ -269,7 +269,7 @@ ENTRY(copyin)
|
|||
|
||||
mov pc, lr
|
||||
|
||||
Lcopyfault:
|
||||
.Lcopyfault:
|
||||
str r5, [r4, #PCB_ONFAULT]
|
||||
RESTORE_REGS
|
||||
|
||||
|
@ -293,11 +293,11 @@ ENTRY(copyout)
|
|||
moveq pc, lr
|
||||
|
||||
SAVE_REGS
|
||||
ldr r4, Lcurpcb
|
||||
ldr r4, .Lcurpcb
|
||||
ldr r4, [r4]
|
||||
|
||||
ldr r5, [r4, #PCB_ONFAULT]
|
||||
add r3, pc, #Lcopyfault - . - 8
|
||||
add r3, pc, #.Lcopyfault - . - 8
|
||||
str r3, [r4, #PCB_ONFAULT]
|
||||
|
||||
PREFETCH(r0, 0)
|
||||
|
@ -496,11 +496,11 @@ ENTRY(kcopy)
|
|||
moveq pc, lr
|
||||
|
||||
SAVE_REGS
|
||||
ldr r4, Lcurpcb
|
||||
ldr r4, .Lcurpcb
|
||||
ldr r4, [r4]
|
||||
|
||||
ldr r5, [r4, #PCB_ONFAULT]
|
||||
add r3, pc, #Lcopyfault - . - 8
|
||||
add r3, pc, #.Lcopyfault - . - 8
|
||||
str r3, [r4, #PCB_ONFAULT]
|
||||
|
||||
PREFETCH(r0, 0)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: copystr.S,v 1.4 2002/08/15 01:38:16 briggs Exp $ */
|
||||
/* $NetBSD: copystr.S,v 1.5 2002/08/17 16:36:31 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Mark Brinicombe.
|
||||
|
@ -41,13 +41,13 @@
|
|||
#include "assym.h"
|
||||
#include <machine/asm.h>
|
||||
|
||||
RCSID("$NetBSD: copystr.S,v 1.4 2002/08/15 01:38:16 briggs Exp $")
|
||||
RCSID("$NetBSD: copystr.S,v 1.5 2002/08/17 16:36:31 thorpej Exp $")
|
||||
|
||||
#include <sys/errno.h>
|
||||
|
||||
.text
|
||||
.align 0
|
||||
Lcurpcb:
|
||||
.Lcurpcb:
|
||||
.word _C_LABEL(curpcb)
|
||||
|
||||
/*
|
||||
|
@ -107,7 +107,7 @@ ENTRY(copyinstr)
|
|||
moveq r0, #ENAMETOOLONG
|
||||
beq 2f
|
||||
|
||||
ldr r4, Lcurpcb
|
||||
ldr r4, .Lcurpcb
|
||||
ldr r4, [r4]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -154,7 +154,7 @@ ENTRY(copyoutstr)
|
|||
moveq r0, #ENAMETOOLONG
|
||||
beq 2f
|
||||
|
||||
ldr r4, Lcurpcb
|
||||
ldr r4, .Lcurpcb
|
||||
ldr r4, [r4]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpufunc_asm_ixp12x0.S,v 1.1 2002/07/15 16:28:04 ichiro Exp $ */
|
||||
/* $NetBSD: cpufunc_asm_ixp12x0.S,v 1.2 2002/08/17 16:36:31 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2002 Wasabi Systems, Inc.
|
||||
|
@ -83,7 +83,7 @@ _C_LABEL(ixp12x0_cache_clean_size):
|
|||
|
||||
.text
|
||||
|
||||
Lixp12x0_cache_clean_addr:
|
||||
.Lixp12x0_cache_clean_addr:
|
||||
.word _C_LABEL(ixp12x0_cache_clean_addr)
|
||||
Lixp12x0_cache_clean_size:
|
||||
.Lixp12x0_cache_clean_size:
|
||||
.word _C_LABEL(ixp12x0_cache_clean_size)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpufunc_asm_sa1.S,v 1.7 2002/08/17 01:02:38 chris Exp $ */
|
||||
/* $NetBSD: cpufunc_asm_sa1.S,v 1.8 2002/08/17 16:36:32 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997,1998 Mark Brinicombe.
|
||||
|
@ -38,7 +38,7 @@
|
|||
#include <machine/cpu.h>
|
||||
#include <machine/asm.h>
|
||||
|
||||
Lblock_userspace_access:
|
||||
.Lblock_userspace_access:
|
||||
.word _C_LABEL(block_userspace_access)
|
||||
|
||||
/*
|
||||
|
@ -53,7 +53,7 @@ ENTRY(sa1_setttb)
|
|||
orr r1, r3, #(I32_bit | F32_bit)
|
||||
msr cpsr_all, r1
|
||||
#else
|
||||
ldr r3, Lblock_userspace_access
|
||||
ldr r3, .Lblock_userspace_access
|
||||
ldr r2, [r3]
|
||||
orr r1, r2, #1
|
||||
str r1, [r3]
|
||||
|
@ -136,9 +136,9 @@ _C_LABEL(sa1_cache_clean_size):
|
|||
|
||||
.text
|
||||
|
||||
Lsa1_cache_clean_addr:
|
||||
.Lsa1_cache_clean_addr:
|
||||
.word _C_LABEL(sa1_cache_clean_addr)
|
||||
Lsa1_cache_clean_size:
|
||||
.Lsa1_cache_clean_size:
|
||||
.word _C_LABEL(sa1_cache_clean_size)
|
||||
|
||||
#ifdef CACHE_CLEAN_BLOCK_INTR
|
||||
|
@ -151,7 +151,7 @@ Lsa1_cache_clean_size:
|
|||
msr cpsr_all, r3
|
||||
#else
|
||||
#define SA1_CACHE_CLEAN_BLOCK \
|
||||
ldr r3, Lblock_userspace_access ; \
|
||||
ldr r3, .Lblock_userspace_access ; \
|
||||
ldr ip, [r3] ; \
|
||||
orr r0, ip, #1 ; \
|
||||
str r0, [r3]
|
||||
|
@ -170,7 +170,7 @@ Lsa1_cache_clean_size:
|
|||
|
||||
#define SA1_CACHE_CLEAN_PROLOGUE \
|
||||
SA1_CACHE_CLEAN_BLOCK ; \
|
||||
ldr r2, Lsa1_cache_clean_addr ; \
|
||||
ldr r2, .Lsa1_cache_clean_addr ; \
|
||||
ldmia r2, {r0, r1} ; \
|
||||
SA1_DOUBLE_CACHE_CLEAN_BANK
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpufunc_asm_sa11x0.S,v 1.2 2002/05/03 12:43:53 rjs Exp $ */
|
||||
/* $NetBSD: cpufunc_asm_sa11x0.S,v 1.3 2002/08/17 16:36:32 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2002 Wasabi Systems, Inc.
|
||||
|
@ -49,7 +49,7 @@ _C_LABEL(sa11x0_idle_mem):
|
|||
|
||||
/* We're now 32-byte aligned */
|
||||
|
||||
Lsa11x0_idle_mem:
|
||||
.Lsa11x0_idle_mem:
|
||||
.word _C_LABEL(sa11x0_idle_mem) /* 1 */
|
||||
|
||||
/*
|
||||
|
@ -59,7 +59,7 @@ Lsa11x0_idle_mem:
|
|||
* We go into IDLE mode so that any IRQ or FIQ will awaken us.
|
||||
*/
|
||||
ENTRY(sa11x0_cpu_sleep)
|
||||
ldr r1, Lsa11x0_idle_mem /* get address of... */ /* 2 */
|
||||
ldr r1, .Lsa11x0_idle_mem /* get address of... */ /* 2 */
|
||||
nop /* 3 */
|
||||
ldr r1, [r1] /* ...non-cacheable page */ /* 4 */
|
||||
nop /* 5 */
|
||||
|
@ -122,4 +122,3 @@ ENTRY(sa11x0_context_switch)
|
|||
ENTRY(sa11x0_drain_readbuf)
|
||||
mcr p15, 0, r0, c9, c0, 0 /* drain read buffer */
|
||||
mov pc, lr
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpufunc_asm_xscale.S,v 1.15 2002/08/14 22:53:19 thorpej Exp $ */
|
||||
/* $NetBSD: cpufunc_asm_xscale.S,v 1.16 2002/08/17 16:36:32 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2001, 2002 Wasabi Systems, Inc.
|
||||
|
@ -79,7 +79,7 @@
|
|||
*/
|
||||
#define DCACHE_SIZE 0x00008000
|
||||
|
||||
Lblock_userspace_access:
|
||||
.Lblock_userspace_access:
|
||||
.word _C_LABEL(block_userspace_access)
|
||||
|
||||
/*
|
||||
|
@ -135,7 +135,7 @@ ENTRY(xscale_setttb)
|
|||
orr r1, r3, #(I32_bit | F32_bit)
|
||||
msr cpsr_all, r1
|
||||
#else
|
||||
ldr r3, Lblock_userspace_access
|
||||
ldr r3, .Lblock_userspace_access
|
||||
ldr r2, [r3]
|
||||
orr r1, r2, #1
|
||||
str r1, [r3]
|
||||
|
@ -245,14 +245,14 @@ _C_LABEL(xscale_minidata_clean_size):
|
|||
|
||||
.text
|
||||
|
||||
Lxscale_cache_clean_addr:
|
||||
.Lxscale_cache_clean_addr:
|
||||
.word _C_LABEL(xscale_cache_clean_addr)
|
||||
Lxscale_cache_clean_size:
|
||||
.Lxscale_cache_clean_size:
|
||||
.word _C_LABEL(xscale_cache_clean_size)
|
||||
|
||||
Lxscale_minidata_clean_addr:
|
||||
.Lxscale_minidata_clean_addr:
|
||||
.word _C_LABEL(xscale_minidata_clean_addr)
|
||||
Lxscale_minidata_clean_size:
|
||||
.Lxscale_minidata_clean_size:
|
||||
.word _C_LABEL(xscale_minidata_clean_size)
|
||||
|
||||
#ifdef CACHE_CLEAN_BLOCK_INTR
|
||||
|
@ -265,7 +265,7 @@ Lxscale_minidata_clean_size:
|
|||
msr cpsr_all, r3
|
||||
#else
|
||||
#define XSCALE_CACHE_CLEAN_BLOCK \
|
||||
ldr r3, Lblock_userspace_access ; \
|
||||
ldr r3, .Lblock_userspace_access ; \
|
||||
ldr ip, [r3] ; \
|
||||
orr r0, ip, #1 ; \
|
||||
str r0, [r3]
|
||||
|
@ -276,7 +276,7 @@ Lxscale_minidata_clean_size:
|
|||
|
||||
#define XSCALE_CACHE_CLEAN_PROLOGUE \
|
||||
XSCALE_CACHE_CLEAN_BLOCK ; \
|
||||
ldr r2, Lxscale_cache_clean_addr ; \
|
||||
ldr r2, .Lxscale_cache_clean_addr ; \
|
||||
ldmia r2, {r0, r1} ; \
|
||||
/* \
|
||||
* BUG ALERT! \
|
||||
|
@ -327,7 +327,7 @@ ENTRY(xscale_cache_cleanD)
|
|||
* while we clean it.
|
||||
*/
|
||||
ENTRY(xscale_cache_clean_minidata)
|
||||
ldr r2, Lxscale_minidata_clean_addr
|
||||
ldr r2, .Lxscale_minidata_clean_addr
|
||||
ldmia r2, {r0, r1}
|
||||
1: ldr r3, [r0], #32
|
||||
subs r1, r1, #32
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: vectors.S,v 1.3 2002/04/03 23:33:28 thorpej Exp $ */
|
||||
/* $NetBSD: vectors.S,v 1.4 2002/08/17 16:36:32 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1994-1997 Mark Brinicombe
|
||||
|
@ -48,46 +48,46 @@
|
|||
.global _C_LABEL(fiqvector)
|
||||
|
||||
_C_LABEL(page0):
|
||||
ldr pc, Lreset_target
|
||||
ldr pc, Lundefined_target
|
||||
ldr pc, Lswi_target
|
||||
ldr pc, Lprefetch_abort_target
|
||||
ldr pc, Ldata_abort_target
|
||||
ldr pc, Laddress_exception_target
|
||||
ldr pc, Lirq_target
|
||||
ldr pc, .Lreset_target
|
||||
ldr pc, .Lundefined_target
|
||||
ldr pc, .Lswi_target
|
||||
ldr pc, .Lprefetch_abort_target
|
||||
ldr pc, .Ldata_abort_target
|
||||
ldr pc, .Laddress_exception_target
|
||||
ldr pc, .Lirq_target
|
||||
#ifdef __ARM_FIQ_INDIRECT
|
||||
ldr pc, Lfiq_target
|
||||
ldr pc, .Lfiq_target
|
||||
#else
|
||||
Lfiqvector:
|
||||
.Lfiqvector:
|
||||
.set _C_LABEL(fiqvector), . - _C_LABEL(page0)
|
||||
subs pc, lr, #4
|
||||
.org Lfiqvector + 0x100
|
||||
.org .Lfiqvector + 0x100
|
||||
#endif
|
||||
|
||||
_C_LABEL(page0_data):
|
||||
Lreset_target:
|
||||
.Lreset_target:
|
||||
.word reset_entry
|
||||
|
||||
Lundefined_target:
|
||||
.Lundefined_target:
|
||||
.word undefined_entry
|
||||
|
||||
Lswi_target:
|
||||
.Lswi_target:
|
||||
.word swi_entry
|
||||
|
||||
Lprefetch_abort_target:
|
||||
.Lprefetch_abort_target:
|
||||
.word prefetch_abort_entry
|
||||
|
||||
Ldata_abort_target:
|
||||
.Ldata_abort_target:
|
||||
.word data_abort_entry
|
||||
|
||||
Laddress_exception_target:
|
||||
.Laddress_exception_target:
|
||||
.word address_exception_entry
|
||||
|
||||
Lirq_target:
|
||||
.Lirq_target:
|
||||
.word irq_entry
|
||||
|
||||
#ifdef __ARM_FIQ_INDIRECT
|
||||
Lfiq_target:
|
||||
.Lfiq_target:
|
||||
.word _C_LABEL(fiqvector)
|
||||
#else
|
||||
.word 0 /* pad it out */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: bcopy_page.S,v 1.4 2002/08/15 01:37:01 briggs Exp $ */
|
||||
/* $NetBSD: bcopy_page.S,v 1.5 2002/08/17 16:36:33 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Scott Stevens
|
||||
|
@ -89,7 +89,7 @@ ENTRY(bcopy_page)
|
|||
mov r2, #(NBPG >> 7)
|
||||
#endif
|
||||
|
||||
.Lloopcopy:
|
||||
1:
|
||||
COPY_CHUNK
|
||||
COPY_CHUNK
|
||||
COPY_CHUNK
|
||||
|
@ -115,7 +115,7 @@ ENTRY(bcopy_page)
|
|||
COPY_CHUNK
|
||||
#endif
|
||||
subs r2, r2, #1
|
||||
bne .Lloopcopy
|
||||
bne 1b
|
||||
|
||||
RESTORE_REGS /* ...and return. */
|
||||
|
||||
|
@ -148,7 +148,7 @@ ENTRY(bzero_page)
|
|||
mov ip, #0
|
||||
mov lr, #0
|
||||
|
||||
.Lloopzero:
|
||||
1:
|
||||
stmia r0!, {r3-r8,ip,lr}
|
||||
stmia r0!, {r3-r8,ip,lr}
|
||||
stmia r0!, {r3-r8,ip,lr}
|
||||
|
@ -176,6 +176,6 @@ ENTRY(bzero_page)
|
|||
#endif
|
||||
|
||||
subs r2, r2, #1
|
||||
bne .Lloopzero
|
||||
bne 1b
|
||||
|
||||
ldmfd sp!, {r4-r8, pc}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpuswitch.S,v 1.16 2002/08/17 01:08:21 thorpej Exp $ */
|
||||
/* $NetBSD: cpuswitch.S,v 1.17 2002/08/17 16:36:33 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994-1998 Mark Brinicombe.
|
||||
|
@ -77,10 +77,10 @@
|
|||
|
||||
.text
|
||||
|
||||
Lwhichqs:
|
||||
.Lwhichqs:
|
||||
.word _C_LABEL(sched_whichqs)
|
||||
|
||||
Lqs:
|
||||
.Lqs:
|
||||
.word _C_LABEL(sched_qs)
|
||||
|
||||
/*
|
||||
|
@ -111,7 +111,7 @@ ENTRY(setrunqueue)
|
|||
ldrb r1, [r0, #(P_PRIORITY)]
|
||||
|
||||
/* Indicate that there is a process on this queue */
|
||||
ldr r12, Lwhichqs
|
||||
ldr r12, .Lwhichqs
|
||||
mov r1, r1, lsr #2
|
||||
ldr r2, [r12]
|
||||
mov r3, #0x00000001
|
||||
|
@ -120,7 +120,7 @@ ENTRY(setrunqueue)
|
|||
str r2, [r12]
|
||||
|
||||
/* Get the address of the queue */
|
||||
ldr r2, Lqs
|
||||
ldr r2, .Lqs
|
||||
add r1, r2, r1, lsl # 3
|
||||
|
||||
/* Hook the process in */
|
||||
|
@ -141,17 +141,17 @@ ENTRY(setrunqueue)
|
|||
.Lsetrunqueue_erg:
|
||||
mov r2, r1
|
||||
mov r1, r0
|
||||
add r0, pc, #Ltext1 - . - 8
|
||||
add r0, pc, #.Ltext1 - . - 8
|
||||
bl _C_LABEL(printf)
|
||||
|
||||
ldr r2, Lqs
|
||||
ldr r2, .Lqs
|
||||
ldr r1, [r2]
|
||||
add r0, pc, #Ltext2 - . - 8
|
||||
add r0, pc, #.Ltext2 - . - 8
|
||||
b _C_LABEL(panic)
|
||||
|
||||
Ltext1:
|
||||
.Ltext1:
|
||||
.asciz "setrunqueue : %08x %08x\n"
|
||||
Ltext2:
|
||||
.Ltext2:
|
||||
.asciz "setrunqueue : [qs]=%08x qs=%08x\n"
|
||||
.align 0
|
||||
#endif
|
||||
|
@ -186,7 +186,7 @@ ENTRY(remrunqueue)
|
|||
teq r2, r3
|
||||
|
||||
/* This could be reworked to avoid the use of r4 */
|
||||
ldreq r12, Lwhichqs
|
||||
ldreq r12, .Lwhichqs
|
||||
moveq r3, #0x00000001
|
||||
ldreq r2, [r12]
|
||||
moveq r3, r3, lsl r1
|
||||
|
@ -207,16 +207,16 @@ ENTRY(remrunqueue)
|
|||
* This function has several entry points
|
||||
*/
|
||||
|
||||
Lcurproc:
|
||||
.Lcurproc:
|
||||
.word _C_LABEL(curproc)
|
||||
|
||||
Lcurpcb:
|
||||
.Lcurpcb:
|
||||
.word _C_LABEL(curpcb)
|
||||
|
||||
Lwant_resched:
|
||||
.Lwant_resched:
|
||||
.word _C_LABEL(want_resched)
|
||||
|
||||
Lcpufuncs:
|
||||
.Lcpufuncs:
|
||||
.word _C_LABEL(cpufuncs)
|
||||
|
||||
.data
|
||||
|
@ -225,7 +225,7 @@ _C_LABEL(curpcb):
|
|||
.word 0x00000000
|
||||
.text
|
||||
|
||||
Lblock_userspace_access:
|
||||
.Lblock_userspace_access:
|
||||
.word _C_LABEL(block_userspace_access)
|
||||
|
||||
.Lcpu_do_powersave:
|
||||
|
@ -261,7 +261,7 @@ ASENTRY_NP(idle)
|
|||
b 1b
|
||||
|
||||
2: /* Powersave idle. */
|
||||
ldr r4, Lcpufuncs
|
||||
ldr r4, .Lcpufuncs
|
||||
3: ldr r3, [r7] /* r3 = whichqs */
|
||||
teq r3, #0x00000000
|
||||
bne .Lswitch_search
|
||||
|
@ -296,8 +296,8 @@ ENTRY(cpu_switch)
|
|||
* a valid process (curproc = 0). Zero the current PCB pointer
|
||||
* while we're at it.
|
||||
*/
|
||||
ldr r7, Lcurproc
|
||||
ldr r6, Lcurpcb
|
||||
ldr r7, .Lcurproc
|
||||
ldr r6, .Lcurpcb
|
||||
mov r0, #0x00000000
|
||||
ldr r1, [r7] /* r1 = curproc */
|
||||
str r0, [r7] /* curproc = NULL */
|
||||
|
@ -329,7 +329,7 @@ ENTRY(cpu_switch)
|
|||
|
||||
/* First phase : find a new process */
|
||||
|
||||
ldr r7, Lwhichqs
|
||||
ldr r7, .Lwhichqs
|
||||
|
||||
/* rem: r5 = old proc */
|
||||
/* rem: r7 = &whichqs */
|
||||
|
@ -364,7 +364,7 @@ ENTRY(cpu_switch)
|
|||
rsb r5, r3, #0
|
||||
ands r0, r3, r5
|
||||
|
||||
adr r5, Lcpu_switch_ffs_table
|
||||
adr r5, .Lcpu_switch_ffs_table
|
||||
|
||||
/* X = R0 */
|
||||
orr r4, r0, r0, lsl #4 /* r4 = X * 0x11 */
|
||||
|
@ -372,7 +372,7 @@ ENTRY(cpu_switch)
|
|||
rsb r4, r4, r4, lsl #16 /* r4 = X * 0x0450fbaf */
|
||||
|
||||
/* used further down, saves SA stall */
|
||||
ldr r6, Lqs
|
||||
ldr r6, .Lqs
|
||||
|
||||
/* now lookup in table indexed on top 6 bits of a4 */
|
||||
ldrb r4, [ r5, r4, lsr #26 ]
|
||||
|
@ -414,7 +414,7 @@ ENTRY(cpu_switch)
|
|||
str r0, [r7, #(P_BACK)]
|
||||
|
||||
/* Update the RAM copy of the queue not empty flags word. */
|
||||
ldr r7, Lwhichqs
|
||||
ldr r7, .Lwhichqs
|
||||
str r3, [r7]
|
||||
|
||||
/* rem: r1 = old proc */
|
||||
|
@ -424,7 +424,7 @@ ENTRY(cpu_switch)
|
|||
/* rem: interrupts are disabled */
|
||||
|
||||
/* Clear the want_resched flag */
|
||||
ldr r7, Lwant_resched
|
||||
ldr r7, .Lwant_resched
|
||||
mov r0, #0x00000000
|
||||
str r0, [r7]
|
||||
|
||||
|
@ -450,11 +450,11 @@ ENTRY(cpu_switch)
|
|||
strb r0, [r6, #(P_STAT)]
|
||||
|
||||
/* We have a new curproc now so make a note it */
|
||||
ldr r7, Lcurproc
|
||||
ldr r7, .Lcurproc
|
||||
str r6, [r7]
|
||||
|
||||
/* Hook in a new pcb */
|
||||
ldr r7, Lcurpcb
|
||||
ldr r7, .Lcurpcb
|
||||
ldr r0, [r6, #(P_ADDR)]
|
||||
str r0, [r7]
|
||||
|
||||
|
@ -531,13 +531,13 @@ ENTRY(cpu_switch)
|
|||
/*
|
||||
* Don't allow user space access between the purge and the switch.
|
||||
*/
|
||||
ldr r3, Lblock_userspace_access
|
||||
ldr r3, .Lblock_userspace_access
|
||||
mov r1, #0x00000001
|
||||
mov r2, #0x00000000
|
||||
str r1, [r3]
|
||||
|
||||
stmfd sp!, {r0-r3}
|
||||
ldr r1, Lcpufuncs
|
||||
ldr r1, .Lcpufuncs
|
||||
add lr, pc, #.Lcs_cache_purged - . - 8
|
||||
ldr pc, [r1, #CF_IDCACHE_WBINV_ALL]
|
||||
|
||||
|
@ -562,7 +562,7 @@ ENTRY(cpu_switch)
|
|||
ldr r0, [r1, #(PCB_PAGEDIR)]
|
||||
|
||||
/* Switch the memory to the new process */
|
||||
ldr r3, Lcpufuncs
|
||||
ldr r3, .Lcpufuncs
|
||||
add lr, pc, #.Lcs_context_switched - . - 8
|
||||
ldr pc, [r3, #CF_CONTEXT_SWITCH]
|
||||
|
||||
|
@ -614,16 +614,10 @@ ENTRY(cpu_switch)
|
|||
* it. Load up registers the way Lcs_cache_purge_skipped
|
||||
* expects. Userspace access already blocked in switch_exit().
|
||||
*/
|
||||
ldr r3, Lblock_userspace_access
|
||||
ldr r3, .Lblock_userspace_access
|
||||
mov r2, #0x00000000
|
||||
b .Lcs_cache_purge_skipped
|
||||
|
||||
Lproc0:
|
||||
.word _C_LABEL(proc0)
|
||||
|
||||
Lkernel_map:
|
||||
.word _C_LABEL(kernel_map)
|
||||
|
||||
/*
|
||||
* void switch_exit(struct proc *p, struct proc *p0);
|
||||
* Switch to proc0's saved context and deallocate the address space and kernel
|
||||
|
@ -640,17 +634,17 @@ ENTRY(switch_exit)
|
|||
mov r3, r0
|
||||
|
||||
/* In case we fault */
|
||||
ldr r0, Lcurproc
|
||||
ldr r0, .Lcurproc
|
||||
mov r2, #0x00000000
|
||||
str r2, [r0]
|
||||
|
||||
/* ldr r0, Lcurpcb
|
||||
/* ldr r0, .Lcurpcb
|
||||
str r2, [r0]*/
|
||||
|
||||
/*
|
||||
* Don't allow user space access between the purge and the switch.
|
||||
*/
|
||||
ldr r0, Lblock_userspace_access
|
||||
ldr r0, .Lblock_userspace_access
|
||||
mov r2, #0x00000001
|
||||
str r2, [r0]
|
||||
|
||||
|
@ -658,7 +652,7 @@ ENTRY(switch_exit)
|
|||
|
||||
stmfd sp!, {r0-r3}
|
||||
|
||||
ldr r0, Lcpufuncs
|
||||
ldr r0, .Lcpufuncs
|
||||
add lr, pc, #.Lse_cache_purged - . - 8
|
||||
ldr pc, [r0, #CF_IDCACHE_WBINV_ALL]
|
||||
|
||||
|
@ -671,7 +665,7 @@ ENTRY(switch_exit)
|
|||
ldr r0, [r2, #(PCB_PAGEDIR)]
|
||||
|
||||
/* Switch the memory to the new process */
|
||||
ldr r4, Lcpufuncs
|
||||
ldr r4, .Lcpufuncs
|
||||
add lr, pc, #.Lse_context_switched - . - 8
|
||||
ldr pc, [r4, #CF_CONTEXT_SWITCH]
|
||||
|
||||
|
@ -682,7 +676,7 @@ ENTRY(switch_exit)
|
|||
|
||||
/* This is not really needed ! */
|
||||
/* Yes it is for the su and fu routines */
|
||||
ldr r0, Lcurpcb
|
||||
ldr r0, .Lcurpcb
|
||||
str r2, [r0]
|
||||
|
||||
IRQenable
|
||||
|
@ -696,11 +690,11 @@ ENTRY(switch_exit)
|
|||
bl _C_LABEL(exit2)
|
||||
|
||||
/* Paranoia */
|
||||
ldr r1, Lcurproc
|
||||
ldr r1, .Lcurproc
|
||||
mov r0, #0x00000000
|
||||
str r0, [r1]
|
||||
|
||||
ldr r7, Lwhichqs /* r7 = &whichqs */
|
||||
ldr r7, .Lwhichqs /* r7 = &whichqs */
|
||||
mov r5, #0x00000000 /* r5 = old proc = NULL */
|
||||
b .Lswitch_search
|
||||
|
||||
|
@ -736,8 +730,8 @@ ENTRY(proc_trampoline)
|
|||
|
||||
movs pc, lr /* Exit */
|
||||
|
||||
.type Lcpu_switch_ffs_table, _ASM_TYPE_OBJECT;
|
||||
Lcpu_switch_ffs_table:
|
||||
.type .Lcpu_switch_ffs_table, _ASM_TYPE_OBJECT;
|
||||
.Lcpu_switch_ffs_table:
|
||||
/* same as ffs table but all nums are -1 from that */
|
||||
/* 0 1 2 3 4 5 6 7 */
|
||||
.byte 0, 0, 1, 12, 2, 6, 0, 13 /* 0- 7 */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fusu.S,v 1.5 2002/08/15 01:37:02 briggs Exp $ */
|
||||
/* $NetBSD: fusu.S,v 1.6 2002/08/17 16:36:33 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996-1998 Mark Brinicombe.
|
||||
|
@ -35,7 +35,7 @@
|
|||
#include "assym.h"
|
||||
#include <machine/asm.h>
|
||||
|
||||
Lcurpcb:
|
||||
.Lcurpcb:
|
||||
.word _C_LABEL(curpcb)
|
||||
|
||||
/*
|
||||
|
@ -44,7 +44,7 @@ Lcurpcb:
|
|||
*/
|
||||
|
||||
ENTRY(fuword)
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -68,7 +68,7 @@ ENTRY(fuword)
|
|||
*/
|
||||
|
||||
ENTRY(fusword)
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -100,7 +100,7 @@ ENTRY(fuswintr)
|
|||
mvnne r0, #0x00000000
|
||||
movne pc, lr
|
||||
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -135,7 +135,7 @@ _C_LABEL(block_userspace_access):
|
|||
*/
|
||||
|
||||
ENTRY(fubyte)
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -198,7 +198,7 @@ fusupcbfaulttext:
|
|||
*/
|
||||
|
||||
ENTRY(suword)
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -228,7 +228,7 @@ ENTRY(suswintr)
|
|||
mvnne r0, #0x00000000
|
||||
movne pc, lr
|
||||
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -253,7 +253,7 @@ ENTRY(suswintr)
|
|||
*/
|
||||
|
||||
ENTRY(susword)
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
#ifdef DIAGNOSTIC
|
||||
|
@ -278,7 +278,7 @@ ENTRY(susword)
|
|||
*/
|
||||
|
||||
ENTRY(subyte)
|
||||
ldr r2, Lcurpcb
|
||||
ldr r2, .Lcurpcb
|
||||
ldr r2, [r2]
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.S,v 1.7 2002/08/15 01:37:02 briggs Exp $ */
|
||||
/* $NetBSD: locore.S,v 1.8 2002/08/17 16:36:34 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1994-1997 Mark Brinicombe
|
||||
|
@ -77,7 +77,7 @@ ASENTRY_NP(start)
|
|||
|
||||
bl _C_LABEL(main) /* call main()! */
|
||||
|
||||
add r0, pc, #Lmainreturned - . - 8
|
||||
add r0, pc, #.Lmainreturned - . - 8
|
||||
b _C_LABEL(panic)
|
||||
/* NOTEACHED */
|
||||
|
||||
|
@ -86,7 +86,7 @@ ASENTRY_NP(start)
|
|||
.word _end
|
||||
.word svcstk + INIT_ARM_STACK_SIZE
|
||||
|
||||
Lmainreturned:
|
||||
.Lmainreturned:
|
||||
.asciz "main() returned"
|
||||
.align 0
|
||||
|
||||
|
@ -100,7 +100,7 @@ svcstk:
|
|||
#ifndef OFW
|
||||
/* OFW based systems will used OF_boot() */
|
||||
|
||||
Lcpufuncs:
|
||||
.Lcpufuncs:
|
||||
.word _C_LABEL(cpufuncs)
|
||||
|
||||
ENTRY_NP(cpu_reset)
|
||||
|
@ -110,10 +110,10 @@ ENTRY_NP(cpu_reset)
|
|||
orr r2, r2, #(I32_bit | F32_bit)
|
||||
msr cpsr_all, r2
|
||||
|
||||
ldr r4, Lcpu_reset_address
|
||||
ldr r4, .Lcpu_reset_address
|
||||
ldr r4, [r4]
|
||||
|
||||
ldr r0, Lcpufuncs
|
||||
ldr r0, .Lcpufuncs
|
||||
add lr, pc, #.Lboot_cache_purged - . - 8
|
||||
ldr pc, [r0, #CF_IDCACHE_WBINV_ALL]
|
||||
|
||||
|
@ -124,7 +124,7 @@ ENTRY_NP(cpu_reset)
|
|||
* necessary.
|
||||
*/
|
||||
|
||||
ldr r1, Lcpu_reset_needs_v4_MMU_disable
|
||||
ldr r1, .Lcpu_reset_needs_v4_MMU_disable
|
||||
ldr r1, [r1]
|
||||
cmp r1, #0
|
||||
|
||||
|
@ -142,7 +142,7 @@ ENTRY_NP(cpu_reset)
|
|||
* the cpu reset after turning the MMU off
|
||||
* This variable is provided by the hardware specific code
|
||||
*/
|
||||
Lcpu_reset_address:
|
||||
.Lcpu_reset_address:
|
||||
.word _C_LABEL(cpu_reset_address)
|
||||
|
||||
/*
|
||||
|
@ -151,7 +151,7 @@ Lcpu_reset_address:
|
|||
* on f.e. ARM6/7 that locks up the computer in an endless illegal
|
||||
* instruction / data-abort / reset loop.
|
||||
*/
|
||||
Lcpu_reset_needs_v4_MMU_disable:
|
||||
.Lcpu_reset_needs_v4_MMU_disable:
|
||||
.word _C_LABEL(cpu_reset_needs_v4_MMU_disable)
|
||||
|
||||
#endif /* OFW */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: spl.S,v 1.3 2001/11/26 20:51:57 thorpej Exp $ */
|
||||
/* $NetBSD: spl.S,v 1.4 2002/08/17 16:36:34 thorpej Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996-1998 Mark Brinicombe.
|
||||
|
@ -45,28 +45,28 @@
|
|||
.text
|
||||
.align 0
|
||||
|
||||
Lcurrent_spl_level:
|
||||
.Lcurrent_spl_level:
|
||||
.word _C_LABEL(current_spl_level)
|
||||
|
||||
Lspl_masks:
|
||||
.Lspl_masks:
|
||||
.word _C_LABEL(spl_masks)
|
||||
|
||||
Lspl_mask:
|
||||
.Lspl_mask:
|
||||
.word _C_LABEL(spl_mask)
|
||||
|
||||
ENTRY(raisespl)
|
||||
mov r3, r0 /* Save the new value */
|
||||
ldr r1, Lcurrent_spl_level /* Get the current spl level */
|
||||
ldr r1, .Lcurrent_spl_level /* Get the current spl level */
|
||||
ldr r0, [r1]
|
||||
cmp r3, r0
|
||||
movle pc, lr
|
||||
|
||||
str r3, [r1] /* Store the new spl level */
|
||||
|
||||
ldr r2, Lspl_masks /* Get the spl mask */
|
||||
ldr r2, .Lspl_masks /* Get the spl mask */
|
||||
ldr r2, [r2, r3, lsl #2]
|
||||
|
||||
ldr r1, Lspl_mask /* Store in the current spl mask */
|
||||
ldr r1, .Lspl_mask /* Store in the current spl mask */
|
||||
str r2, [r1]
|
||||
|
||||
/* stack alignment is 8 bytes */
|
||||
|
@ -76,17 +76,17 @@ ENTRY(raisespl)
|
|||
|
||||
ENTRY(lowerspl)
|
||||
mov r3, r0 /* Save the new value */
|
||||
ldr r1, Lcurrent_spl_level /* Get the current spl level */
|
||||
ldr r1, .Lcurrent_spl_level /* Get the current spl level */
|
||||
ldr r0, [r1]
|
||||
cmp r3, r0
|
||||
movge pc, lr
|
||||
|
||||
str r3, [r1] /* Store the new spl level */
|
||||
|
||||
ldr r2, Lspl_masks /* Get the spl mask */
|
||||
ldr r2, .Lspl_masks /* Get the spl mask */
|
||||
ldr r2, [r2, r3, lsl #2]
|
||||
|
||||
ldr r1, Lspl_mask /* Store in the current spl mask */
|
||||
ldr r1, .Lspl_mask /* Store in the current spl mask */
|
||||
str r2, [r1]
|
||||
|
||||
/* stack alignment is 8 bytes */
|
||||
|
@ -96,7 +96,7 @@ ENTRY(lowerspl)
|
|||
ldmfd sp!, {r0, pc} /* Exit */
|
||||
|
||||
ENTRY(splx)
|
||||
ldr r1, Lcurrent_spl_level /* Get the current spl level */
|
||||
ldr r1, .Lcurrent_spl_level /* Get the current spl level */
|
||||
mov r3, r0 /* Save the new value */
|
||||
ldr r0, [r1]
|
||||
cmp r3, r0
|
||||
|
@ -104,9 +104,9 @@ ENTRY(splx)
|
|||
|
||||
str r3, [r1] /* Store the new spl level */
|
||||
|
||||
ldr r2, Lspl_masks /* Get the spl mask */
|
||||
ldr r2, .Lspl_masks /* Get the spl mask */
|
||||
|
||||
ldr r1, Lspl_mask /* Store in the current spl mask */
|
||||
ldr r1, .Lspl_mask /* Store in the current spl mask */
|
||||
|
||||
ldr r2, [r2, r3, lsl #2] /* Use r4 so available later */
|
||||
|
||||
|
|
Loading…
Reference in New Issue