From d588a922abdd50523378ca9c90be08962b47d710 Mon Sep 17 00:00:00 2001
From: Yuhao Zhou <miskcoo@gmail.com>
Date: Mon, 1 Apr 2019 22:36:12 +0800
Subject: [PATCH] Fix some syntax errors.

---
 .../arch/mipsel/boot/{entry.asm => entry.S}   | 13 +++--
 kernel/src/arch/mipsel/context.rs             | 51 ++++++++++++++-----
 kernel/src/arch/mipsel/mod.rs                 |  4 +-
 3 files changed, 46 insertions(+), 22 deletions(-)
 rename kernel/src/arch/mipsel/boot/{entry.asm => entry.S} (58%)

diff --git a/kernel/src/arch/mipsel/boot/entry.asm b/kernel/src/arch/mipsel/boot/entry.S
similarity index 58%
rename from kernel/src/arch/mipsel/boot/entry.asm
rename to kernel/src/arch/mipsel/boot/entry.S
index 3cee2fd..80ecb42 100644
--- a/kernel/src/arch/mipsel/boot/entry.asm
+++ b/kernel/src/arch/mipsel/boot/entry.S
@@ -1,14 +1,13 @@
+#include "regdef.h"
+
+	.set noreorder
     .section .text.entry
     .globl _start
 _start:
-    add t0, a0, 1
-    slli t0, t0, 16
-    
-    lui sp, %hi(bootstack)
-    addi sp, sp, %lo(bootstack)
-    add sp, sp, t0
+	la sp, bootstacktop
 
-    call rust_main
+    b rust_main
+	nop
 
     .section .bss.stack
     .align 12  #PGSHIFT
diff --git a/kernel/src/arch/mipsel/context.rs b/kernel/src/arch/mipsel/context.rs
index dc6eea7..8c4a996 100644
--- a/kernel/src/arch/mipsel/context.rs
+++ b/kernel/src/arch/mipsel/context.rs
@@ -5,23 +5,48 @@ use mips::registers;
 #[repr(C)]
 pub struct TrapFrame {
     /// CP0 status register
-    pub status: usize;
+    pub status: u32,
     /// CP0 cause register
-    pub cause: usize;
+    pub cause: u32,
     /// CP0 EPC register
-    pub epc: usize;
+    pub epc: u32,
     /// CP0 vaddr register
-    pub vaddr: usize;
+    pub vaddr: u32,
     /// HI/LO registers
-    pub hi, lo: usize;
-    /// General registers 1-7
-    pub at, v0, v1, a0, a1, a2, a3: u32;
-    /// General registers 8-15
-    pub t0, t1, t2, t3, t4, t5, t6, t7: u32;  
-    /// General registers 16-23
-    pub s0, s1, s2, s3, s4, s5, s6, s7: u32;
-    /// General registers 24-31
-    pub t8, t9, k0, k1, gp, sp, fp, ra: u32;
+    pub hi: u32,
+    pub lo: u32,
+    /// General registers
+    pub at: u32,
+    pub v0: u32,
+    pub v1: u32,
+    pub a0: u32,
+    pub a1: u32,
+    pub a2: u32,
+    pub a3: u32,
+    pub t0: u32,
+    pub t1: u32,
+    pub t2: u32,
+    pub t3: u32,
+    pub t4: u32,
+    pub t5: u32,
+    pub t6: u32,
+    pub t7: u32,
+    pub s0: u32,
+    pub s1: u32,
+    pub s2: u32,
+    pub s3: u32,
+    pub s4: u32,
+    pub s5: u32,
+    pub s6: u32,
+    pub s7: u32,
+    pub t8: u32,
+    pub t9: u32,
+    pub k0: u32,
+    pub k1: u32,
+    pub gp: u32,
+    pub sp: u32,
+    pub fp: u32,
+    pub ra: u32,
     /// Reserve space for hartid
     pub _hartid: usize,
 }
diff --git a/kernel/src/arch/mipsel/mod.rs b/kernel/src/arch/mipsel/mod.rs
index d9af59d..02bb307 100644
--- a/kernel/src/arch/mipsel/mod.rs
+++ b/kernel/src/arch/mipsel/mod.rs
@@ -83,5 +83,5 @@ global_asm!(r"
 ");
 
 
-global_asm!(include_str!("boot/entry.asm"));
-global_asm!(include_str!("boot/trap.asm"));
+global_asm!(include_str!("boot/entry.S"));
+global_asm!(include_str!("boot/trap.S"));