Ignore:
Timestamp:
Jun 7, 1995, 1:27:28 AM (26 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
9526d217
Parents:
459f770
Message:

incorporated mc68302 support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/score/cpu/m68k/cpu_asm.s

    r459f770 r9e86dd7d  
    133133        addql   #4,a7                   | remove vector number
    134134
     135/*
     136 *   The following entry should be unnecessary once the support is
     137 *   in place to know what vector we got on a 68000 core.
     138 */
     139
     140        .global SYM (_ISR_Exit)
     141SYM (_ISR_Exit):
     142
    135143        subql   #1,SYM (_ISR_Nest_level)       | one less nest level
    136144        subql   #1,SYM (_Thread_Dispatch_disable_level)
     
    138146        bne     exit                     | If dispatch disabled, exit
    139147
     148#if ( M68K_HAS_SEPARATE_STACKS == 1 )
    140149        movew   #0xf000,d0              | isolate format nibble
    141150        andw    a7@(SAVED+FVO_OFFSET),d0 | get F/VO
    142151        cmpiw   #0x1000,d0              | is it a throwaway isf?
    143152        bne     exit                     | NOT outer level, so branch
     153#endif
    144154
    145155        tstl    SYM (_Context_Switch_necessary)
     
    156166                                         | If sent, will be processed
    157167#if ( M68K_HAS_SEPARATE_STACKS == 1 )
    158         movec   msp,a0                 | a0 = master stack pointer
    159         movew   #0,a0@-                 | push format word
     168        movec   msp,a0                   | a0 = master stack pointer
     169        movew   #0,a0@-                  | push format word
    160170        movel   # SYM (_ISR_Dispatch),a0@-    | push return addr
    161         movew   a0@(6+SR_OFFSET),a0@-  | push thread sr
    162         movec   a0,msp                 | set master stack pointer
     171        movew   a0@(6+SR_OFFSET),a0@-    | push thread sr
     172        movec   a0,msp                   | set master stack pointer
    163173#else
    164 #warning "FIX ME ... HOW DO I DISPATCH FROM AN INTERRUPT?"
    165 /* probably will simply need to push the _ISR_Dispatch frame */
    166 #endif
    167 
    168 exit:   moveml  a7@+,d0-d1/a0-a1    | restore d0-d1,a0-a1
     174
     175        movew   a7@(16+SR_OFFSET),sr
     176        jsr     SYM (_Thread_Dispatch)
     177
     178#endif
     179
     180exit:   moveml  a7@+,d0-d1/a0-a1         | restore d0-d1,a0-a1
    169181        rte                              | return to thread
    170182                                         |   OR _Isr_dispatch
Note: See TracChangeset for help on using the changeset viewer.