OpenCores
URL https://opencores.org/ocsvn/mlite/mlite/trunk

Subversion Repositories mlite

[/] [mlite/] [trunk/] [tools/] [boot.asm] - Diff between revs 213 and 239

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 213 Rev 239
Line 5... Line 5...
# FILENAME: boot.asm
# FILENAME: boot.asm
# PROJECT: Plasma CPU core
# PROJECT: Plasma CPU core
# COPYRIGHT: Software placed into the public domain by the author.
# COPYRIGHT: Software placed into the public domain by the author.
#    Software 'as is' without warranty.  Author liable for nothing.
#    Software 'as is' without warranty.  Author liable for nothing.
# DESCRIPTION:
# DESCRIPTION:
#    Initializes the stack pointer and jumps to main2().
#    Initializes the stack pointer and jumps to main().
##################################################################
##################################################################
 
   #Reserve 512 bytes for stack
 
   .comm InitStack, 512
 
 
        .text
        .text
        .align  2
        .align  2
        .globl  entry
   .global entry
        .ent    entry
        .ent    entry
entry:
entry:
   .set noreorder
   .set noreorder
 
 
   #These eight instructions should be the first instructions.
   #These four instructions should be the first instructions.
   #convert.exe previously initialized $gp, .sbss_start, .bss_end, $sp
   #convert.exe previously initialized $gp, .sbss_start, .bss_end, $sp
   la    $gp, _gp             #initialize stack pointer
   la    $gp, _gp             #initialize global pointer
   la    $4, __bss_start      #$4 = .sbss_start
   la    $5, __bss_start      #$5 = .sbss_start
   la    $2, _end             #$2 = .bss_end
   la    $4, _end             #$2 = .bss_end
   la    $sp, InitStack+488   #initialize stack pointer
   la    $sp, InitStack+488   #initialize stack pointer
 
 
$BSS_CLEAR:
$BSS_CLEAR:
   sw    $0, 0($4)
   sw    $0, 0($5)
   slt   $3, $4, $2
   slt   $3, $5, $4
   bnez  $3, $BSS_CLEAR
   bnez  $3, $BSS_CLEAR
   addiu $4, $4, 4
   addiu $5, $5, 4
 
 
   jal   main
   jal   main
   nop
   nop
$L1:
$L1:
   j $L1
   j $L1
Line 37... Line 40...
   .end entry
   .end entry
 
 
 
 
###################################################
###################################################
   #address 0x3c
   #address 0x3c
        .globl interrupt_service_routine
   .global interrupt_service_routine
        .ent     interrupt_service_routine
        .ent     interrupt_service_routine
interrupt_service_routine:
interrupt_service_routine:
   .set noreorder
   .set noreorder
   .set noat
   .set noat
 
 
Line 116... Line 119...
   .end interrupt_service_routine
   .end interrupt_service_routine
   .set at
   .set at
 
 
 
 
###################################################
###################################################
   .globl OS_AsmInterruptEnable
   .global OS_AsmInterruptEnable
   .ent OS_AsmInterruptEnable
   .ent OS_AsmInterruptEnable
OS_AsmInterruptEnable:
OS_AsmInterruptEnable:
   .set noreorder
   .set noreorder
   mfc0  $2, $12
   mfc0  $2, $12
   jr    $31
   jr    $31
Line 129... Line 132...
   .set reorder
   .set reorder
   .end OS_AsmInterruptEnable
   .end OS_AsmInterruptEnable
 
 
 
 
###################################################
###################################################
        .globl  OS_AsmInterruptInit
   .global  OS_AsmInterruptInit
   .ent     OS_AsmInterruptInit
   .ent     OS_AsmInterruptInit
OS_AsmInterruptInit:
OS_AsmInterruptInit:
   .set noreorder
   .set noreorder
   #Patch interrupt vector to 0x1000003c
   #Patch interrupt vector to 0x1000003c
   la    $5, OS_AsmPatchValue
   la    $5, OS_AsmPatchValue
Line 158... Line 161...
   .set reorder
   .set reorder
   .end OS_AsmInterruptInit
   .end OS_AsmInterruptInit
 
 
 
 
###################################################
###################################################
        .globl  setjmp
   .global   setjmp
   .ent     setjmp
   .ent     setjmp
setjmp:
setjmp:
   .set noreorder
   .set noreorder
   sw    $16, 0($4)   #s0
   sw    $16, 0($4)   #s0
   sw    $17, 4($4)   #s1
   sw    $17, 4($4)   #s1
Line 182... Line 185...
   .set reorder
   .set reorder
   .end setjmp
   .end setjmp
 
 
 
 
###################################################
###################################################
        .globl  longjmp
   .global   longjmp
   .ent     longjmp
   .ent     longjmp
longjmp:
longjmp:
   .set noreorder
   .set noreorder
   lw    $16, 0($4)   #s0
   lw    $16, 0($4)   #s0
   lw    $17, 4($4)   #s1
   lw    $17, 4($4)   #s1
Line 206... Line 209...
   .set reorder
   .set reorder
   .end longjmp
   .end longjmp
 
 
 
 
###################################################
###################################################
        .globl  OS_AsmMult
   .global   OS_AsmMult
   .ent     OS_AsmMult
   .ent     OS_AsmMult
OS_AsmMult:
OS_AsmMult:
   .set noreorder
   .set noreorder
   multu $4, $5
   multu $4, $5
   mflo  $2
   mflo  $2
Line 221... Line 224...
   .set reorder
   .set reorder
   .end OS_AsmMult
   .end OS_AsmMult
 
 
 
 
###################################################
###################################################
   .globl OS_Syscall
   .global OS_Syscall
   .ent OS_Syscall
   .ent OS_Syscall
OS_Syscall:
OS_Syscall:
   .set noreorder
   .set noreorder
   syscall 0
   syscall 0
   jr    $31
   jr    $31

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.