aboutsummaryrefslogtreecommitdiff
path: root/pk/handlers.c
diff options
context:
space:
mode:
authorChristopher Celio <celio@eecs.berkeley.edu>2012-09-07 21:56:51 -0700
committerChristopher Celio <celio@eecs.berkeley.edu>2012-09-07 21:56:51 -0700
commitd6a522404a38405ecfad78839d4c29bf5cb02e9b (patch)
tree3ccddd3e3d13a82fe187c25cfb45203108e9035e /pk/handlers.c
parent6336ef155fabdd15eecf11949b7e13a49e279738 (diff)
downloadpk-d6a522404a38405ecfad78839d4c29bf5cb02e9b.zip
pk-d6a522404a38405ecfad78839d4c29bf5cb02e9b.tar.gz
pk-d6a522404a38405ecfad78839d4c29bf5cb02e9b.tar.bz2
Added rough emulation support for div/rem/mul.
Diffstat (limited to 'pk/handlers.c')
-rw-r--r--pk/handlers.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pk/handlers.c b/pk/handlers.c
index 817f14d..8b959e8 100644
--- a/pk/handlers.c
+++ b/pk/handlers.c
@@ -4,7 +4,7 @@
int have_fp = 1; // initialized to 1 because it can't be in the .bss section!
int have_vector = 1;
-
+
static void handle_vector_disabled(trapframe_t* tf)
{
if (have_vector)
@@ -41,6 +41,12 @@ static void handle_illegal_instruction(trapframe_t* tf)
}
#endif
+ if(emulate_int(tf) == 0)
+ {
+ advance_pc(tf);
+ return;
+ }
+
dump_tf(tf);
panic("An illegal instruction was executed!");
}