Ignore:
File:
1 edited

Legend:

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

    r36df4109 r9d58539  
    2727#
    2828
    29 #include <abi/asmtool.h>
    3029#include <arch/asm/regname.h>
    3130#include <arch/mm/page.h>
    3231#include <arch/asm/boot.h>
     32#include <arch/context_offset.h>
    3333#include <arch/stack.h>
    34 #include <arch/istate_struct.h>
    3534
    3635.text
     
    4039.set nomacro
    4140
     41.global kernel_image_start
     42.global tlb_refill_entry
     43.global cache_error_entry
     44.global exception_entry
     45.global userspace_asm
     46
    4247/*
    4348 * Which status bits are thread-local:
     
    4550 */
    4651#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
    4791
    4892/*
     
    5397 */
    5498.macro FAKE_ABI_PROLOGUE
    55         sub $sp, ISTATE_SIZE
     99        sub $sp, ISTATE_SOFT_SIZE
    56100        sw $ra, ISTATE_OFFSET_EPC($sp)
    57101.endm
     
    187231
    188232.org 0x0
    189 SYMBOL(kernel_image_start)
     233kernel_image_start:
    190234        /* load temporary stack */
    191235        lui $sp, %hi(end_stack)
     
    196240       
    197241        /* $a1 contains physical address of bootinfo_t */
    198         jal mips32_pre_main
     242        jal arch_pre_main
    199243        addiu $sp, -ABI_STACK_FRAME
    200244       
     
    205249end_stack:
    206250
    207 SYMBOL(tlb_refill_entry)
     251tlb_refill_entry:
    208252        j tlb_refill_handler
    209253        nop
    210254
    211 SYMBOL(cache_error_entry)
     255cache_error_entry:
    212256        j cache_error_handler
    213257        nop
    214258
    215 SYMBOL(exception_entry)
     259exception_entry:
    216260        j exception_handler
    217261        nop
     
    221265        KERNEL_STACK_TO_K0
    222266       
    223         sub $k0, ISTATE_SIZE
     267        sub $k0, ISTATE_SOFT_SIZE
    224268        sw $sp, ISTATE_OFFSET_SP($k0)
    225269        move $sp, $k0
     
    311355tlb_refill_handler:
    312356        KERNEL_STACK_TO_K0
    313         sub $k0, ISTATE_SIZE
     357        sub $k0, ISTATE_SOFT_SIZE
    314358        REGISTERS_STORE_AND_EXC_RESET $k0
    315359        sw $sp, ISTATE_OFFSET_SP($k0)
     
    327371cache_error_handler:
    328372        KERNEL_STACK_TO_K0
    329         sub $k0, ISTATE_SIZE
     373        sub $k0, ISTATE_SOFT_SIZE
    330374        REGISTERS_STORE_AND_EXC_RESET $k0
    331375        sw $sp, ISTATE_OFFSET_SP($k0)
     
    340384        eret
    341385
    342 FUNCTION_BEGIN(userspace_asm)
     386userspace_asm:
    343387        move $sp, $a0
    344388        move $v0, $a1
     
    347391                           /* set it to 0 */
    348392        eret
    349 FUNCTION_END(userspace_asm)
Note: See TracChangeset for help on using the changeset viewer.