Module Name: src
Committed By: tsutsui
Date: Thu Jan 10 16:03:49 UTC 2013
Modified Files:
src/sys/arch/luna68k/stand/boot: locore.S
Log Message:
Use proper asm symbol macro.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/luna68k/stand/boot/locore.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/luna68k/stand/boot/locore.S
diff -u src/sys/arch/luna68k/stand/boot/locore.S:1.1 src/sys/arch/luna68k/stand/boot/locore.S:1.2
--- src/sys/arch/luna68k/stand/boot/locore.S:1.1 Sat Jan 5 17:44:24 2013
+++ src/sys/arch/luna68k/stand/boot/locore.S Thu Jan 10 16:03:49 2013
@@ -102,82 +102,83 @@
.text
- .globl Reset
- .globl _buserr,_addrerr
- .globl _illinst,_zerodiv,_chkinst,_trapvinst,_privinst
- .globl _lev6intr,_lev5intr,_lev3intr,_lev2intr,_badtrap
-
ASENTRY_NOPROFILE(start)
-Reset:
+ASGLOBAL(Reset)
jmp _C_LABEL(start1) /* 0: NOT USED (reset PC) */
.word 0 /* 1: NOT USED (reset PC) */
- .long _buserr /* 2: bus error */
- .long _addrerr /* 3: address error */
- .long _illinst /* 4: illegal instruction */
- .long _zerodiv /* 5: zero divide */
- .long _chkinst /* 6: CHK instruction */
- .long _trapvinst /* 7: TRAPV instruction */
- .long _privinst /* 8: privilege violation */
- .long _badtrap /* 9: trace */
- .long _illinst /* 10: line 1010 emulator */
- .long _illinst /* 11: line 1111 emulator */
- .long _badtrap /* 12: unassigned, reserved */
- .long _coperr /* 13: coprocessor protocol violation */
- .long _fmterr /* 14: format error */
- .long _badtrap /* 15: uninitialized interrupt vector */
- .long _badtrap /* 16: unassigned, reserved */
- .long _badtrap /* 17: unassigned, reserved */
- .long _badtrap /* 18: unassigned, reserved */
- .long _badtrap /* 19: unassigned, reserved */
- .long _badtrap /* 20: unassigned, reserved */
- .long _badtrap /* 21: unassigned, reserved */
- .long _badtrap /* 22: unassigned, reserved */
- .long _badtrap /* 23: unassigned, reserved */
- .long _badtrap /* 24: spurious interrupt */
- .long _badtrap /* 25: level 1 interrupt autovector */
- .long _lev2intr /* 26: level 2 interrupt autovector */
- .long _lev3intr /* 27: level 3 interrupt autovector */
- .long _badtrap /* 28: level 4 interrupt autovector */
- .long _lev5intr /* 29: level 5 interrupt autovector */
- .long _lev6intr /* 30: level 6 interrupt autovector */
- .long _badtrap /* 31: level 7 interrupt autovector */
- .long _illinst /* 32: syscalls */
- .long _illinst /* 33: sigreturn syscall or breakpoint */
- .long _illinst /* 34: breakpoint or sigreturn syscall */
- .long _illinst /* 35: TRAP instruction vector */
- .long _illinst /* 36: TRAP instruction vector */
- .long _illinst /* 37: TRAP instruction vector */
- .long _illinst /* 38: TRAP instruction vector */
- .long _illinst /* 39: TRAP instruction vector */
- .long _illinst /* 40: TRAP instruction vector */
- .long _illinst /* 41: TRAP instruction vector */
- .long _illinst /* 42: TRAP instruction vector */
- .long _illinst /* 43: TRAP instruction vector */
- .long _illinst /* 44: TRAP instruction vector */
- .long _illinst /* 45: TRAP instruction vector */
- .long _illinst /* 46: TRAP instruction vector */
- .long _illinst /* 47: TRAP instruction vector */
- .long _fptrap /* 48: FPCP branch/set on unordered cond */
- .long _fptrap /* 49: FPCP inexact result */
- .long _fptrap /* 50: FPCP divide by zero */
- .long _fptrap /* 51: FPCP underflow */
- .long _fptrap /* 52: FPCP operand error */
- .long _fptrap /* 53: FPCP overflow */
- .long _fptrap /* 54: FPCP signalling NAN */
-
- .long _badtrap /* 55: unassigned, reserved */
- .long _badtrap /* 56: unassigned, reserved */
- .long _badtrap /* 57: unassigned, reserved */
- .long _badtrap /* 58: unassigned, reserved */
- .long _badtrap /* 59: unassigned, reserved */
- .long _badtrap /* 60: unassigned, reserved */
- .long _badtrap /* 61: unassigned, reserved */
- .long _badtrap /* 62: unassigned, reserved */
- .long _badtrap /* 63: unassigned, reserved */
-#define BADTRAP16 .long _badtrap,_badtrap,_badtrap,_badtrap,\
- _badtrap,_badtrap,_badtrap,_badtrap,\
- _badtrap,_badtrap,_badtrap,_badtrap,\
- _badtrap,_badtrap,_badtrap,_badtrap
+ VECTOR(buserr) /* 2: bus error */
+ VECTOR(addrerr) /* 3: address error */
+ VECTOR(illinst) /* 4: illegal instruction */
+ VECTOR(zerodiv) /* 5: zero divide */
+ VECTOR(chkinst) /* 6: CHK instruction */
+ VECTOR(trapvinst) /* 7: TRAPV instruction */
+ VECTOR(privinst) /* 8: privilege violation */
+ VECTOR(badtrap) /* 9: trace */
+ VECTOR(illinst) /* 10: line 1010 emulator */
+ VECTOR(illinst) /* 11: line 1111 emulator */
+ VECTOR(badtrap) /* 12: unassigned, reserved */
+ VECTOR(coperr) /* 13: coprocessor protocol violation */
+ VECTOR(fmterr) /* 14: format error */
+ VECTOR(badtrap) /* 15: uninitialized interrupt vector */
+ VECTOR(badtrap) /* 16: unassigned, reserved */
+ VECTOR(badtrap) /* 17: unassigned, reserved */
+ VECTOR(badtrap) /* 18: unassigned, reserved */
+ VECTOR(badtrap) /* 19: unassigned, reserved */
+ VECTOR(badtrap) /* 20: unassigned, reserved */
+ VECTOR(badtrap) /* 21: unassigned, reserved */
+ VECTOR(badtrap) /* 22: unassigned, reserved */
+ VECTOR(badtrap) /* 23: unassigned, reserved */
+ VECTOR(badtrap) /* 24: unassigned, reserved */
+ VECTOR(badtrap) /* 25: unassigned, reserved */
+ VECTOR(lev2intr) /* 26: level 2 interrupt autovector */
+ VECTOR(lev3intr) /* 27: level 3 interrupt autovector */
+ VECTOR(badtrap) /* 28: level 4 interrupt autovector */
+ VECTOR(lev5intr) /* 29: level 5 interrupt autovector */
+ VECTOR(lev6intr) /* 30: level 6 interrupt autovector */
+ VECTOR(badtrap) /* 31: level 7 interrupt autovector */
+ VECTOR(illinst) /* 32: syscalls */
+ VECTOR(illinst) /* 33: sigreturn syscall or breakpoint */
+ VECTOR(illinst) /* 34: breakpoint or sigreturn syscall */
+ VECTOR(illinst) /* 35: TRAP instruction vector */
+ VECTOR(illinst) /* 36: TRAP instruction vector */
+ VECTOR(illinst) /* 37: TRAP instruction vector */
+ VECTOR(illinst) /* 38: TRAP instruction vector */
+ VECTOR(illinst) /* 39: TRAP instruction vector */
+ VECTOR(illinst) /* 40: TRAP instruction vector */
+ VECTOR(illinst) /* 41: TRAP instruction vector */
+ VECTOR(illinst) /* 42: TRAP instruction vector */
+ VECTOR(illinst) /* 43: TRAP instruction vector */
+ VECTOR(illinst) /* 44: TRAP instruction vector */
+ VECTOR(illinst) /* 45: TRAP instruction vector */
+ VECTOR(illinst) /* 45: TRAP instruction vector */
+ VECTOR(illinst) /* 47: TRAP instruction vector */
+ VECTOR(fptrap) /* 48: FPCP branch/set on unordered cond */
+ VECTOR(fptrap) /* 49: FPCP inexact result */
+ VECTOR(fptrap) /* 50: FPCP divide by zero */
+ VECTOR(fptrap) /* 51: FPCP underflow */
+ VECTOR(fptrap) /* 52: FPCP operand error */
+ VECTOR(fptrap) /* 53: FPCP overflow */
+ VECTOR(fptrap) /* 54: FPCP signalling NAN */
+
+ VECTOR(badtrap) /* 55: unassigned, reserved */
+ VECTOR(badtrap) /* 56: unassigned, reserved */
+ VECTOR(badtrap) /* 57: unassigned, reserved */
+ VECTOR(badtrap) /* 58: unassigned, reserved */
+ VECTOR(badtrap) /* 59: unassigned, reserved */
+ VECTOR(badtrap) /* 60: unassigned, reserved */
+ VECTOR(badtrap) /* 61: unassigned, reserved */
+ VECTOR(badtrap) /* 62: unassigned, reserved */
+ VECTOR(badtrap) /* 63: unassigned, reserved */
+#define BADTRAP16 \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap) ; \
+ VECTOR(badtrap) ; VECTOR(badtrap)
+
BADTRAP16 /* 64-255: user interrupt vectors */
BADTRAP16 /* 64-255: user interrupt vectors */
BADTRAP16 /* 64-255: user interrupt vectors */
@@ -192,8 +193,6 @@ Reset:
BADTRAP16 /* 64-255: user interrupt vectors */
- .globl _etext,_edata,_end
-
START = 0x700000
STACK = 0x800000
DIPSW = 0x49000000
@@ -203,7 +202,7 @@ ASENTRY_NOPROFILE(start1)
movl #STACK,%sp | set SP
movl #_C_LABEL(prgcore), %a2 | save program address
- movl #Reset, %a2@+ | save start of core
+ movl #_ASM_LABEL(Reset), %a2@+ | save start of core
movl #_C_LABEL(end), %a2@+ | save end of core
movl #STACK, %a2@ | save initial stack addr
@@ -220,7 +219,7 @@ Lbssclr:
movl %a0@(NMIVEC),%d0 | restore NMIVEC
movl #_ASM_LABEL(gotoROM),%a0 | save to _gotoROM
movl %d0,%a0@ |
- movl #Reset,%a0 | BP vbr to %a0
+ movl #_ASM_LABEL(Reset),%a0 | BP vbr to %a0
movl #_C_LABEL(exit),%a0@(NMIVEC) | save address
@@ -229,7 +228,7 @@ Lbssclr:
movl %a0@(ILLGINST),%sp@- | save ILLINST vector for BrkPtr
movl %a0@(EVTRAPF),%sp@-
- movl #Reset,%a0
+ movl #_ASM_LABEL(Reset),%a0
movl %sp@+,%a0@(EVTRAPF)
movl %sp@+,%a0@(ILLGINST) | restore ILLINST vector
movec %a0,%vbr
@@ -267,12 +266,12 @@ GLOBAL(_rtt)
* Trap/interrupt vector routines
*/
-_buserr:
+ENTRY_NOPROFILE(buserr)
tstl _C_LABEL(nofault) | device probe?
- jeq _addrerr | no, handle as usual
+ jeq _C_LABEL(addrerr) | no, handle as usual
movl _C_LABEL(nofault),%sp@- | yes,
jbsr _C_LABEL(longjmp) | longjmp(nofault)
-_addrerr:
+ENTRY_NOPROFILE(addrerr)
clrw %sp@- | pad SR to longword
moveml #0xFFFF,%sp@- | save user registers
movl %usp,%a0 | save the user SP
@@ -344,16 +343,16 @@ Lbexit:
moveml %sp@+,#0x7FFF | restore most user regs
addql #4,%sp | toss SSP
tstw %sp@+ | do we need to clean up stack?
- jeq rei | no, just continue
+ jeq _ASM_LABEL(rei) | no, just continue
btst #7,%sp@(6) | type 9/10/11 frame?
- jeq rei | no, nothing to do
+ jeq _ASM_LABEL(rei) | no, nothing to do
btst #5,%sp@(6) | type 9?
jne Lbex1 | no, skip
movw %sp@,%sp@(12) | yes, push down SR
movl %sp@(2),%sp@(14) | and PC
clrw %sp@(18) | and mark as type 0 frame
lea %sp@(12),%sp | clean the excess
- jra rei | all done
+ jra _ASM_LABEL(rei) | all done
Lbex1:
btst #4,%sp@(6) | type 10?
jne Lbex2 | no, skip
@@ -361,57 +360,57 @@ Lbex1:
movl %sp@(2),%sp@(26) | and PC
clrw %sp@(30) | and mark as type 0 frame
lea %sp@(24),%sp | clean the excess
- jra rei | all done
+ jra _ASM_LABEL(rei) | all done
Lbex2:
movw %sp@,%sp@(84) | type 11, push down SR
movl %sp@(2),%sp@(86) | and PC
clrw %sp@(90) | and mark as type 0 frame
lea %sp@(84),%sp | clean the excess
- jra rei | all done
+ jra _ASM_LABEL(rei) | all done
-_illinst:
+ENTRY_NOPROFILE(illinst)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_ILLINST,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_zerodiv:
+ENTRY_NOPROFILE(zerodiv)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_ZERODIV,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_chkinst:
+ENTRY_NOPROFILE(chkinst)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_CHKINST,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_trapvinst:
+ENTRY_NOPROFILE(trapvinst)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_TRAPVINST,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_privinst:
+ENTRY_NOPROFILE(privinst)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_PRIVINST,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_coperr:
+ENTRY_NOPROFILE(coperr)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_COPERR,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_fmterr:
+ENTRY_NOPROFILE(fmterr)
clrw %sp@-
moveml #0xFFFF,%sp@-
moveq #T_FMTERR,%d0
- jra _fault
+ jra _C_LABEL(fault)
-_fptrap:
+ENTRY_NOPROFILE(fptrap)
#ifdef FPCOPROC
clrw %sp@- | pad SR to longword
moveml #0xFFFF,%sp@- | save user registers
@@ -439,13 +438,12 @@ Lfptnull:
movl %a0,%usp | user SP
moveml %sp@+,#0x7FFF | and remaining user registers
addql #6,%sp | pop SSP and align word
- jra rei | all done
+ jra _ASM_LABEL(rei) | all done
#else
- jra _badtrap | treat as an unexpected trap
+ jra _C_LABEL(badtrap) | treat as an unexpected trap
#endif
- .globl _fault
-_fault:
+ENTRY_NOPROFILE(fault)
movl %usp,%a0 | get and save
movl %a0,%sp@(60) | the user stack pointer
clrl %sp@- | no VA arg
@@ -457,9 +455,9 @@ _fault:
movl %a0,%usp | user SP
moveml %sp@+,#0x7FFF | restore most user regs
addql #6,%sp | pop SP and pad word
- jra rei | all done
+ jra _ASM_LABEL(rei) | all done
-_badtrap:
+ENTRY_NOPROFILE(badtrap)
clrw %sp@-
moveml #0xC0C0,%sp@-
movw %sp@(24),%sp@-
@@ -468,7 +466,7 @@ _badtrap:
addql #4,%sp
moveml %sp@+,#0x0303
addql #2,%sp
- jra rei
+ jra _ASM_LABEL(rei)
/*
* Interrupt handlers.
@@ -485,22 +483,22 @@ _badtrap:
* Level 7: Non-maskable: Abort Key (Dispatched vector to ROM monitor)
*/
-_lev2intr:
+ENTRY_NOPROFILE(lev2intr)
clrw %sp@-
moveml #0xC0C0,%sp@-
jbsr _C_LABEL(scintr)
moveml %sp@+,#0x0303
addql #2,%sp
- jra rei
+ jra _ASM_LABEL(rei)
-_lev3intr:
+ENTRY_NOPROFILE(lev3intr)
clrw %sp@-
moveml #0xC0C0,%sp@-
moveml %sp@+,#0x0303
addql #2,%sp
- jra rei
+ jra _ASM_LABEL(rei)
-_lev5intr:
+ENTRY_NOPROFILE(lev5intr)
clrw %sp@- | push pad word
moveml #0xC0C0,%sp@- | save scratch regs
movl #CLOCK_REG,%a0 | get clock CR addr
@@ -512,17 +510,17 @@ _lev5intr:
addql #8,%sp | pop params
moveml %sp@+,#0x0303 | restore scratch regs
addql #2,%sp | pop pad word
- jra rei | all done
+ jra _ASM_LABEL(rei) | all done
ENTRY_NOPROFILE(hardclock)
rts
-_lev6intr:
+ENTRY_NOPROFILE(lev6intr)
clrw %sp@-
moveml #0xC0C0,%sp@-
jbsr _C_LABEL(_siointr)
moveml %sp@+,#0x0303
addql #2,%sp
- jra rei
+ jra _ASM_LABEL(rei)
/*
@@ -541,9 +539,9 @@ _lev6intr:
*/
#if 0
.comm _ssir,1
-rei:
+ASENTRY_NOPROFILE(rei)
#ifdef DEBUG
- tstl _panicstr | have we paniced?
+ tstl _C_LABEL(panicstr) | have we paniced?
jne Ldorte | yes, do not make matters worse
#endif
btst #PCB_ASTB,_u+PCB_FLAGS+1| AST pending?
@@ -557,7 +555,7 @@ rei:
clrl %sp@- | VA == none
clrl %sp@- | code == none
movl #T_ASTFLT,%sp@- | type == async system trap
- jbsr _trap | go handle it
+ jbsr _C_LABEL(trap) | go handle it
lea %sp@(12),%sp | pop value args
movl %sp@(60),%a0 | restore
movl %a0,%usp | user SP
@@ -618,7 +616,7 @@ Lnosir:
movl %sp@+,%d0 | restore scratch register
Ldorte:
#else
-rei: | dummy Entry of rei
+ASENTRY_NOPROFILE(rei) | dummy Entry of rei
#endif
rte | real return
@@ -744,7 +742,7 @@ GLOBAL(prgcore)
.long 0
.long 0
-gotoROM:
+ASLOCAL(gotoROM)
.long 0
GLOBAL(dipsw1)