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)