Changeset ffc277e in mainline for arch/mips/src/asm.S


Ignore:
Timestamp:
2005-09-10T00:52:13Z (20 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f3a6c8e5
Parents:
b02e5d1
Message:

Cleanup of makefiles to have common options in one main makefile.

Add simple build process for different simulators for MIPS.
Added FPU context & lazy FPU context switching to MIPS.
Cleanup of MIPS linker script.
Moved MIPS kernel above 1MB. Not tested on real machine yet, but it might help.

There is something broken with gcc inlined memcpy (either simulator or gcc), it is disabled on BigEndian mips now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/mips/src/asm.S

    rb02e5d1 rffc277e  
    2727#
    2828
     29#include <arch/asm/regname.h>
     30       
    2931.text
    3032
     
    116118
    117119
    118 .global tlbp
    119 tlbp:
    120         tlbp
    121         j $31
    122         nop
    123 
    124 .global tlbr
    125 tlbr:
    126         tlbr
    127         j $31
    128         nop
    129 
    130 .global tlbwi
    131 tlbwi:
    132         tlbwi
    133         j $31
    134         nop
    135 
    136 .global tlbwr
    137 tlbwr:
    138         tlbwr
    139         j $31
    140         nop
    141 
    142120.global cpu_halt
    143121cpu_halt:
     
    156134        nop
    157135
     136.macro fpu_gp_save reg ctx
     137        mfc1 $t0,$\reg
     138        sw $t0, \reg*4(\ctx)
     139.endm
     140
     141.macro fpu_gp_restore reg ctx
     142        lw $t0, \reg*4(\ctx)
     143        mtc1 $t0,$\reg
     144.endm
     145
     146.macro fpu_ct_save reg ctx
     147        cfc1 $t0,$1
     148        sw $t0, (\reg+32)*4(\ctx)
     149.endm   
     150
     151.macro fpu_ct_restore reg ctx
     152        lw $t0, (\reg+32)*4(\ctx)
     153        ctc1 $t0,$\reg
     154.endm
     155
     156
     157.global fpu_context_save
     158fpu_context_save:
     159#ifdef HAVE_FPU
     160        fpu_gp_save 0,$a0
     161        fpu_gp_save 1,$a0
     162        fpu_gp_save 2,$a0
     163        fpu_gp_save 3,$a0
     164        fpu_gp_save 4,$a0
     165        fpu_gp_save 5,$a0
     166        fpu_gp_save 6,$a0
     167        fpu_gp_save 7,$a0
     168        fpu_gp_save 8,$a0
     169        fpu_gp_save 9,$a0
     170        fpu_gp_save 10,$a0
     171        fpu_gp_save 11,$a0
     172        fpu_gp_save 12,$a0
     173        fpu_gp_save 13,$a0
     174        fpu_gp_save 14,$a0
     175        fpu_gp_save 15,$a0
     176        fpu_gp_save 16,$a0
     177        fpu_gp_save 17,$a0
     178        fpu_gp_save 18,$a0
     179        fpu_gp_save 19,$a0
     180        fpu_gp_save 20,$a0
     181        fpu_gp_save 21,$a0
     182        fpu_gp_save 22,$a0
     183        fpu_gp_save 23,$a0
     184        fpu_gp_save 24,$a0
     185        fpu_gp_save 25,$a0
     186        fpu_gp_save 26,$a0
     187        fpu_gp_save 27,$a0
     188        fpu_gp_save 28,$a0
     189        fpu_gp_save 29,$a0
     190        fpu_gp_save 30,$a0
     191        fpu_gp_save 31,$a0
     192
     193        fpu_ct_save 1,$a0
     194        fpu_ct_save 2,$a0
     195        fpu_ct_save 3,$a0
     196        fpu_ct_save 4,$a0
     197        fpu_ct_save 5,$a0
     198        fpu_ct_save 6,$a0
     199        fpu_ct_save 7,$a0
     200        fpu_ct_save 8,$a0
     201        fpu_ct_save 9,$a0
     202        fpu_ct_save 10,$a0
     203        fpu_ct_save 11,$a0
     204        fpu_ct_save 12,$a0
     205        fpu_ct_save 13,$a0
     206        fpu_ct_save 14,$a0
     207        fpu_ct_save 15,$a0
     208        fpu_ct_save 16,$a0
     209        fpu_ct_save 17,$a0
     210        fpu_ct_save 18,$a0
     211        fpu_ct_save 19,$a0
     212        fpu_ct_save 20,$a0
     213        fpu_ct_save 21,$a0
     214        fpu_ct_save 22,$a0
     215        fpu_ct_save 23,$a0
     216        fpu_ct_save 24,$a0
     217        fpu_ct_save 25,$a0
     218        fpu_ct_save 26,$a0
     219        fpu_ct_save 27,$a0
     220        fpu_ct_save 28,$a0
     221        fpu_ct_save 29,$a0
     222        fpu_ct_save 30,$a0
     223        fpu_ct_save 31,$a0
     224#endif         
     225        j $ra
     226        nop
     227
     228.global fpu_context_restore
     229fpu_context_restore:
     230#ifdef HAVE_FPU
     231        fpu_gp_restore 0,$a0
     232        fpu_gp_restore 1,$a0
     233        fpu_gp_restore 2,$a0
     234        fpu_gp_restore 3,$a0
     235        fpu_gp_restore 4,$a0
     236        fpu_gp_restore 5,$a0
     237        fpu_gp_restore 6,$a0
     238        fpu_gp_restore 7,$a0
     239        fpu_gp_restore 8,$a0
     240        fpu_gp_restore 9,$a0
     241        fpu_gp_restore 10,$a0
     242        fpu_gp_restore 11,$a0
     243        fpu_gp_restore 12,$a0
     244        fpu_gp_restore 13,$a0
     245        fpu_gp_restore 14,$a0
     246        fpu_gp_restore 15,$a0
     247        fpu_gp_restore 16,$a0
     248        fpu_gp_restore 17,$a0
     249        fpu_gp_restore 18,$a0
     250        fpu_gp_restore 19,$a0
     251        fpu_gp_restore 20,$a0
     252        fpu_gp_restore 21,$a0
     253        fpu_gp_restore 22,$a0
     254        fpu_gp_restore 23,$a0
     255        fpu_gp_restore 24,$a0
     256        fpu_gp_restore 25,$a0
     257        fpu_gp_restore 26,$a0
     258        fpu_gp_restore 27,$a0
     259        fpu_gp_restore 28,$a0
     260        fpu_gp_restore 29,$a0
     261        fpu_gp_restore 30,$a0
     262        fpu_gp_restore 31,$a0
     263
     264        fpu_ct_restore 1,$a0
     265        fpu_ct_restore 2,$a0
     266        fpu_ct_restore 3,$a0
     267        fpu_ct_restore 4,$a0
     268        fpu_ct_restore 5,$a0
     269        fpu_ct_restore 6,$a0
     270        fpu_ct_restore 7,$a0
     271        fpu_ct_restore 8,$a0
     272        fpu_ct_restore 9,$a0
     273        fpu_ct_restore 10,$a0
     274        fpu_ct_restore 11,$a0
     275        fpu_ct_restore 12,$a0
     276        fpu_ct_restore 13,$a0
     277        fpu_ct_restore 14,$a0
     278        fpu_ct_restore 15,$a0
     279        fpu_ct_restore 16,$a0
     280        fpu_ct_restore 17,$a0
     281        fpu_ct_restore 18,$a0
     282        fpu_ct_restore 19,$a0
     283        fpu_ct_restore 20,$a0
     284        fpu_ct_restore 21,$a0
     285        fpu_ct_restore 22,$a0
     286        fpu_ct_restore 23,$a0
     287        fpu_ct_restore 24,$a0
     288        fpu_ct_restore 25,$a0
     289        fpu_ct_restore 26,$a0
     290        fpu_ct_restore 27,$a0
     291        fpu_ct_restore 28,$a0
     292        fpu_ct_restore 29,$a0
     293        fpu_ct_restore 30,$a0
     294        fpu_ct_restore 31,$a0
     295#endif 
     296        j $ra
     297        nop
     298       
    158299# THIS IS USERSPACE CODE
    159300.global utext
Note: See TracChangeset for help on using the changeset viewer.