Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/mips32/src/start.S

    r9d58539 r36df4109  
    2727#
    2828
     29#include <abi/asmtool.h>
    2930#include <arch/asm/regname.h>
    3031#include <arch/mm/page.h>
    3132#include <arch/asm/boot.h>
    32 #include <arch/context_offset.h>
    3333#include <arch/stack.h>
     34#include <arch/istate_struct.h>
    3435
    3536.text
     
    3940.set nomacro
    4041
    41 .global kernel_image_start
    42 .global tlb_refill_entry
    43 .global cache_error_entry
    44 .global exception_entry
    45 .global userspace_asm
    46 
    4742/*
    4843 * Which status bits are thread-local:
     
    5045 */
    5146#define REG_SAVE_MASK 0x1f
    52 
    53 #define ISTATE_OFFSET_A0        0
    54 #define ISTATE_OFFSET_A1        4
    55 #define ISTATE_OFFSET_A2        8
    56 #define ISTATE_OFFSET_A3        12
    57 #define ISTATE_OFFSET_T0        16
    58 #define ISTATE_OFFSET_T1        20
    59 #define ISTATE_OFFSET_V0        24
    60 #define ISTATE_OFFSET_V1        28
    61 #define ISTATE_OFFSET_AT        32
    62 #define ISTATE_OFFSET_T2        36
    63 #define ISTATE_OFFSET_T3        40
    64 #define ISTATE_OFFSET_T4        44
    65 #define ISTATE_OFFSET_T5        48
    66 #define ISTATE_OFFSET_T6        52
    67 #define ISTATE_OFFSET_T7        56
    68 #define ISTATE_OFFSET_S0        60
    69 #define ISTATE_OFFSET_S1        64
    70 #define ISTATE_OFFSET_S2        68
    71 #define ISTATE_OFFSET_S3        72
    72 #define ISTATE_OFFSET_S4        76
    73 #define ISTATE_OFFSET_S5        80
    74 #define ISTATE_OFFSET_S6        84
    75 #define ISTATE_OFFSET_S7        88
    76 #define ISTATE_OFFSET_T8        92
    77 #define ISTATE_OFFSET_T9        96
    78 #define ISTATE_OFFSET_KT0       100
    79 #define ISTATE_OFFSET_KT1       104
    80 #define ISTATE_OFFSET_GP        108
    81 #define ISTATE_OFFSET_SP        112
    82 #define ISTATE_OFFSET_S8        116
    83 #define ISTATE_OFFSET_RA        120
    84 #define ISTATE_OFFSET_LO        124
    85 #define ISTATE_OFFSET_HI        128
    86 #define ISTATE_OFFSET_STATUS    132
    87 #define ISTATE_OFFSET_EPC       136
    88 #define ISTATE_OFFSET_ALIGNMENT 140
    89 
    90 #define ISTATE_SOFT_SIZE        144
    9147
    9248/*
     
    9753 */
    9854.macro FAKE_ABI_PROLOGUE
    99         sub $sp, ISTATE_SOFT_SIZE
     55        sub $sp, ISTATE_SIZE
    10056        sw $ra, ISTATE_OFFSET_EPC($sp)
    10157.endm
     
    231187
    232188.org 0x0
    233 kernel_image_start:
     189SYMBOL(kernel_image_start)
    234190        /* load temporary stack */
    235191        lui $sp, %hi(end_stack)
     
    240196       
    241197        /* $a1 contains physical address of bootinfo_t */
    242         jal arch_pre_main
     198        jal mips32_pre_main
    243199        addiu $sp, -ABI_STACK_FRAME
    244200       
     
    249205end_stack:
    250206
    251 tlb_refill_entry:
     207SYMBOL(tlb_refill_entry)
    252208        j tlb_refill_handler
    253209        nop
    254210
    255 cache_error_entry:
     211SYMBOL(cache_error_entry)
    256212        j cache_error_handler
    257213        nop
    258214
    259 exception_entry:
     215SYMBOL(exception_entry)
    260216        j exception_handler
    261217        nop
     
    265221        KERNEL_STACK_TO_K0
    266222       
    267         sub $k0, ISTATE_SOFT_SIZE
     223        sub $k0, ISTATE_SIZE
    268224        sw $sp, ISTATE_OFFSET_SP($k0)
    269225        move $sp, $k0
     
    355311tlb_refill_handler:
    356312        KERNEL_STACK_TO_K0
    357         sub $k0, ISTATE_SOFT_SIZE
     313        sub $k0, ISTATE_SIZE
    358314        REGISTERS_STORE_AND_EXC_RESET $k0
    359315        sw $sp, ISTATE_OFFSET_SP($k0)
     
    371327cache_error_handler:
    372328        KERNEL_STACK_TO_K0
    373         sub $k0, ISTATE_SOFT_SIZE
     329        sub $k0, ISTATE_SIZE
    374330        REGISTERS_STORE_AND_EXC_RESET $k0
    375331        sw $sp, ISTATE_OFFSET_SP($k0)
     
    384340        eret
    385341
    386 userspace_asm:
     342FUNCTION_BEGIN(userspace_asm)
    387343        move $sp, $a0
    388344        move $v0, $a1
     
    391347                           /* set it to 0 */
    392348        eret
     349FUNCTION_END(userspace_asm)
Note: See TracChangeset for help on using the changeset viewer.