- fixed interrupt enable on jump into main

git-svn-id: http://moon:8086/svn/mips@21 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
2015-05-23 13:07:28 +00:00
parent 24dd333763
commit ea01b025a2
2 changed files with 13 additions and 34 deletions
+6 -14
View File
@@ -115,14 +115,11 @@ void Jump_to(void *pEntry)
__asm __asm
( (
"jr %[pEntry]\n" // jump entry "jr %[pEntry]\n" // jump entry
"nop\n"
: :
: [pEntry] "r" (pEntry) : [pEntry] "r" (pEntry)
); );
__asm __asm
(
"nop\n"
);
__asm
( (
".set reorder\n" ".set reorder\n"
); );
@@ -137,18 +134,12 @@ void Exec_at(void *pEntry)
__asm __asm
( (
"mfc0 $26, $12\n" // change exception vector "mtc0 %[pEntry], $14\n"
"li $27, 0xFFBFFFFF\n"
"and $26, $27\n"
"mtc0 $26, $12\n"
);
__asm
(
"lw $v0, 16($sp)\n"
"nop\n" "nop\n"
"jr $v0\n" // jump entry "jr %[pEntry]\n" // jump entry
"rfe\n" "rfe\n"
:
: [pEntry] "r" (pEntry)
); );
__asm __asm
@@ -156,6 +147,7 @@ void Exec_at(void *pEntry)
".set reorder\n" ".set reorder\n"
); );
} }
void PrintCPUinfo(void) void PrintCPUinfo(void)
{ {
int result, rev_id; int result, rev_id;
+7 -20
View File
@@ -136,14 +136,11 @@ void Jump_to(void *pEntry)
__asm __asm
( (
"jr %[pEntry]\n" // jump entry "jr %[pEntry]\n" // jump entry
"nop\n"
: :
: [pEntry] "r" (pEntry) : [pEntry] "r" (pEntry)
); );
__asm __asm
(
"nop\n"
);
__asm
( (
".set reorder\n" ".set reorder\n"
); );
@@ -158,22 +155,14 @@ void Exec_at(void *pEntry)
__asm __asm
( (
"li $26, 0x1000000A\n" "mtc0 %[pEntry], $14\n"
"mtc0 $26, $12\n" "nop\n"
);
__asm
(
"jr %[pEntry]\n" // jump entry "jr %[pEntry]\n" // jump entry
"rfe\n"
: :
: [pEntry] "r" (pEntry) : [pEntry] "r" (pEntry)
); );
__asm
(
"rfe\n"
);
__asm __asm
( (
".set reorder\n" ".set reorder\n"
@@ -199,16 +188,14 @@ void Exec_RE_at(void *pEntry)
__asm __asm
( (
"mtc0 %[pEntry], $14\n"
"nop\n"
"jr %[pEntry]\n" // jump entry "jr %[pEntry]\n" // jump entry
"rfe\n"
: :
: [pEntry] "r" (pEntry) : [pEntry] "r" (pEntry)
); );
__asm
(
"rfe\n"
);
__asm __asm
( (
".set reorder\n" ".set reorder\n"