Ignore:
Timestamp:
12/05/95 19:23:05 (28 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
e88d2db
Parents:
289ad86
Message:

update from Andy Bray <andy@…>

Location:
c/src/lib/libcpu/powerpc/ppc403/vectors
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libcpu/powerpc/ppc403/vectors/align_h.s

    r289ad86 re57b0e2  
    1 /*  align_h.s   1.0 - 95/09/26
     1/*  align_h.s   1.1 - 95/12/04
    22 *
    33 *  This file contains the assembly code for the PowerPC 403
     
    2626 * Modifications:
    2727 *
    28  *  Author:     Andrew Bray <andy@i-cubed.demon.co.uk>
     28 *  Author:     Andrew Bray <andy@i-cubed.co.uk>
    2929 *
    3030 *  COPYRIGHT (c) 1995 by i-cubed ltd.
     
    122122        stw     r9,Open_cr(r1)
    123123        stw     r10,Open_ctr(r1)
    124         mfsrr2  r7
    125         mfsrr3  r8
    126         mfsrr0  r9
    127         mfsrr1  r10
     124        mfspr   r7, srr2                /* SRR 2 */
     125        mfspr   r8, srr3                /* SRR 3 */
     126        mfspr   r9, srr0                /* SRR 0 */
     127        mfspr   r10, srr1               /* SRR 1 */
    128128        stw     r7,Open_srr2(r1)
    129129        stw     r8,Open_srr3(r1)
     
    132132
    133133/*      Set up common registers */
    134         mfdear  r5                      /* R5 is data exception address */
     134        mfspr   r5, dear                /* DEAR: R5 is data exception address */
    135135        lwz     r9,Open_srr0(r1)        /* get faulting instruction */
    136136        addi    r7,r9,4                 /* bump instruction */
     
    426426        mtctr   r26
    427427        mtcrf   0xFF, r27
    428         mtsrr2  r28
    429         mtsrr3  r29
    430         mtsrr0  r30
    431         mtsrr1  r31
    432         mttcr   r30
    433         mtexier r31
     428        mtspr   srr2, r28               /* SRR 2 */
     429        mtspr   srr3, r29               /* SRR 3 */
     430        mtspr   srr0, r30               /* SRR 0 */
     431        mtspr   srr1, r31               /* SRR 1 */
    434432        lmw     r0,Open_gpr0+ALIGN_REGS(r0)
    435433        rfi
    436 
  • c/src/lib/libcpu/powerpc/ppc403/vectors/vectors.s

    r289ad86 re57b0e2  
    1 /*  vectors.s   1.0 - 95/08/08
     1/*  vectors.s   1.1 - 95/12/04
    22 *
    33 *  This file contains the assembly code for the PowerPC 403
    44 *  interrupt veneers for RTEMS.
    55 *
    6  *  Author:     Andrew Bray <andy@i-cubed.demon.co.uk>
     6 *  Author:     Andrew Bray <andy@i-cubed.co.uk>
    77 *
    88 *  COPYRIGHT (c) 1995 by i-cubed ltd.
     
    1919 *      of this software for any purpose.
    2020 *
    21  *  $Id$
    2221 */
    2322
     
    3837 *  offset from 0x????0000 to the first location in the file.  This
    3938 *  will usually be 0x0000 or 0x0100.
     39 *
     40 *  $Id$
    4041 */
    4142
     
    114115/* Critical error handling */
    115116        .org    crit_vector - file_base
    116         mtsprg1 r0
    117         mfsprg2 r0
    118         mtmsr   r0
    119 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    120 #if (PPC_HAS_FPU)
    121         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    122 #else
    123         stwu    r1, -(20*4 + IP_END)(r1)
    124 #endif
    125 #else
    126         stwu    r1, -(IP_END)(r1)
    127 #endif
    128         mfsprg1 r0
     117#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     118#if (PPC_HAS_FPU)
     119        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     120#else
     121        stwu    r1, -(20*4 + IP_END)(r1)
     122#endif
     123#else
     124        stwu    r1, -(IP_END)(r1)
     125#endif
    129126        stw     r0, IP_0(r1)
    130127
     
    134131/* Machine check exception */
    135132        .org    mach_vector - file_base
    136         mtsprg1 r0
    137         mfsprg2 r0
    138         mtmsr   r0
    139 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    140 #if (PPC_HAS_FPU)
    141         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    142 #else
    143         stwu    r1, -(20*4 + IP_END)(r1)
    144 #endif
    145 #else
    146         stwu    r1, -(IP_END)(r1)
    147 #endif
    148         mfsprg1 r0
     133#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     134#if (PPC_HAS_FPU)
     135        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     136#else
     137        stwu    r1, -(20*4 + IP_END)(r1)
     138#endif
     139#else
     140        stwu    r1, -(IP_END)(r1)
     141#endif
    149142        stw     r0, IP_0(r1)
    150143
     
    154147/* Protection exception */
    155148        .org    prot_vector - file_base
    156         mtsprg0 r0
    157         mfsprg2 r0
    158         mtmsr   r0
    159 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    160 #if (PPC_HAS_FPU)
    161         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    162 #else
    163         stwu    r1, -(20*4 + IP_END)(r1)
    164 #endif
    165 #else
    166         stwu    r1, -(IP_END)(r1)
    167 #endif
    168         mfsprg0 r0
     149#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     150#if (PPC_HAS_FPU)
     151        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     152#else
     153        stwu    r1, -(20*4 + IP_END)(r1)
     154#endif
     155#else
     156        stwu    r1, -(IP_END)(r1)
     157#endif
    169158        stw     r0, IP_0(r1)
    170159
     
    174163/* External interrupt */
    175164        .org    ext_vector - file_base
    176         mtsprg0 r0
    177         mfsprg2 r0
    178         mtmsr   r0
    179 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    180 #if (PPC_HAS_FPU)
    181         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    182 #else
    183         stwu    r1, -(20*4 + IP_END)(r1)
    184 #endif
    185 #else
    186         stwu    r1, -(IP_END)(r1)
    187 #endif
    188         mfsprg0 r0
     165#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     166#if (PPC_HAS_FPU)
     167        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     168#else
     169        stwu    r1, -(20*4 + IP_END)(r1)
     170#endif
     171#else
     172        stwu    r1, -(IP_END)(r1)
     173#endif
    189174        stw     r0, IP_0(r1)
    190175
     
    199184/* Program exception */
    200185        .org    prog_vector - file_base
    201         mtsprg0 r0
    202         mfsprg2 r0
    203         mtmsr   r0
    204 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    205 #if (PPC_HAS_FPU)
    206         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    207 #else
    208         stwu    r1, -(20*4 + IP_END)(r1)
    209 #endif
    210 #else
    211         stwu    r1, -(IP_END)(r1)
    212 #endif
    213         mfsprg0 r0
     186#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     187#if (PPC_HAS_FPU)
     188        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     189#else
     190        stwu    r1, -(20*4 + IP_END)(r1)
     191#endif
     192#else
     193        stwu    r1, -(IP_END)(r1)
     194#endif
    214195        stw     r0, IP_0(r1)
    215196
     
    219200/* System call */
    220201        .org    sys_vector - file_base
    221         mtsprg0 r0
    222         mfsprg2 r0
    223         mtmsr   r0
    224 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    225 #if (PPC_HAS_FPU)
    226         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    227 #else
    228         stwu    r1, -(20*4 + IP_END)(r1)
    229 #endif
    230 #else
    231         stwu    r1, -(IP_END)(r1)
    232 #endif
    233         mfsprg0 r0
     202#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     203#if (PPC_HAS_FPU)
     204        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     205#else
     206        stwu    r1, -(20*4 + IP_END)(r1)
     207#endif
     208#else
     209        stwu    r1, -(IP_END)(r1)
     210#endif
    234211        stw     r0, IP_0(r1)
    235212
     
    239216/* PIT interrupt */
    240217        .org    pit_vector - file_base
    241         b       pit
     218#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     219#if (PPC_HAS_FPU)
     220        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     221#else
     222        stwu    r1, -(20*4 + IP_END)(r1)
     223#endif
     224#else
     225        stwu    r1, -(IP_END)(r1)
     226#endif
     227        stw     r0, IP_0(r1)
     228
     229        li      r0, PPC_IRQ_PIT
     230        b       PROC (_ISR_Handler)
    242231                       
    243232/* FIT interrupt */
    244233        .org    fit_vector - file_base
    245         b       fit
     234#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     235#if (PPC_HAS_FPU)
     236        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     237#else
     238        stwu    r1, -(20*4 + IP_END)(r1)
     239#endif
     240#else
     241        stwu    r1, -(IP_END)(r1)
     242#endif
     243        stw     r0, IP_0(r1)
     244
     245        li      r0, PPC_IRQ_FIT
     246        b       PROC (_ISR_Handler)
    246247                       
    247248/* Watchdog interrupt */
    248249        .org    wadt_vector - file_base
    249         b       watch
    250                
    251 /* PIT interrupt */
    252 pit:
    253         mtsprg0 r0
    254         mfsprg2 r0
    255         mtmsr   r0
    256 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    257 #if (PPC_HAS_FPU)
    258         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    259 #else
    260         stwu    r1, -(20*4 + IP_END)(r1)
    261 #endif
    262 #else
    263         stwu    r1, -(IP_END)(r1)
    264 #endif
    265         mfsprg0 r0
    266         stw     r0, IP_0(r1)
    267 
    268         li      r0, PPC_IRQ_PIT
    269         b       PROC (_ISR_Handler)
    270        
    271 /* FIT interrupt */
    272 fit:
    273         mtsprg0 r0
    274         mfsprg2 r0
    275         mtmsr   r0
    276 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    277 #if (PPC_HAS_FPU)
    278         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    279 #else
    280         stwu    r1, -(20*4 + IP_END)(r1)
    281 #endif
    282 #else
    283         stwu    r1, -(IP_END)(r1)
    284 #endif
    285         mfsprg0 r0
    286         stw     r0, IP_0(r1)
    287 
    288         li      r0, PPC_IRQ_FIT
    289         b       PROC (_ISR_Handler)
    290 
    291 /* Watchdog interrupt */
    292 watch:
    293         mtsprg1 r0
    294         mfsprg2 r0
    295         mtmsr   r0
    296 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    297 #if (PPC_HAS_FPU)
    298         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    299 #else
    300         stwu    r1, -(20*4 + IP_END)(r1)
    301 #endif
    302 #else
    303         stwu    r1, -(IP_END)(r1)
    304 #endif
    305         mfsprg1 r0
     250#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     251#if (PPC_HAS_FPU)
     252        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     253#else
     254        stwu    r1, -(20*4 + IP_END)(r1)
     255#endif
     256#else
     257        stwu    r1, -(IP_END)(r1)
     258#endif
    306259        stw     r0, IP_0(r1)
    307260
     
    311264/* Debug exception */
    312265debug:
    313         mtsprg1 r0
    314         mfsprg2 r0
    315         mtmsr   r0
    316 #if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
    317 #if (PPC_HAS_FPU)
    318         stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
    319 #else
    320         stwu    r1, -(20*4 + IP_END)(r1)
    321 #endif
    322 #else
    323         stwu    r1, -(IP_END)(r1)
    324 #endif
    325         mfsprg1 r0
     266#if (PPC_ABI == PPC_ABI_POWEROPEN || PPC_ABI == PPC_ABI_GCC27)
     267#if (PPC_HAS_FPU)
     268        stwu    r1, -(20*4 + 18*8 + IP_END)(r1)
     269#else
     270        stwu    r1, -(20*4 + IP_END)(r1)
     271#endif
     272#else
     273        stwu    r1, -(IP_END)(r1)
     274#endif
    326275        stw     r0, IP_0(r1)
    327276
Note: See TracChangeset for help on using the changeset viewer.