diff options
author | Christopher Celio <celio@eecs.berkeley.edu> | 2012-09-07 21:56:51 -0700 |
---|---|---|
committer | Christopher Celio <celio@eecs.berkeley.edu> | 2012-09-07 21:56:51 -0700 |
commit | d6a522404a38405ecfad78839d4c29bf5cb02e9b (patch) | |
tree | 3ccddd3e3d13a82fe187c25cfb45203108e9035e /pk/handlers.c | |
parent | 6336ef155fabdd15eecf11949b7e13a49e279738 (diff) | |
download | pk-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.c | 8 |
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!"); } |