diff options
author | edgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-02-25 09:58:22 +0000 |
---|---|---|
committer | edgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-02-25 09:58:22 +0000 |
commit | 5d4a534dec61df1dc2e521093040e965c180f63b (patch) | |
tree | 967fae1482f0b21221db31401b4e78e1c9db59c7 | |
parent | 1a2fb1c0093c9ac1bceec8b5cbe550c478f2e7b3 (diff) |
Silently ignore CRIS cache flushes, instead of aborting due to unknown insn.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3990 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | target-cris/crisv32-decode.h | 3 | ||||
-rw-r--r-- | target-cris/translate.c | 16 |
2 files changed, 17 insertions, 2 deletions
diff --git a/target-cris/crisv32-decode.h b/target-cris/crisv32-decode.h index 5d30dcc4be..3a515c4a05 100644 --- a/target-cris/crisv32-decode.h +++ b/target-cris/crisv32-decode.h @@ -124,3 +124,6 @@ #define DEC_BASC_IM {B8(11101111), B8(11111111)} #define DEC_MOVEM_MR {B8(10111011), B8(10111111)} #define DEC_MOVEM_RM {B8(10111111), B8(10111111)} + +#define DEC_FTAG_FIDX_D_M {B8(10101011), B8(11111111)} +#define DEC_FTAG_FIDX_I_M {B8(11010011), B8(11111111)} diff --git a/target-cris/translate.c b/target-cris/translate.c index 3a5e5eb1ba..d8cfda5559 100644 --- a/target-cris/translate.c +++ b/target-cris/translate.c @@ -2123,6 +2123,18 @@ static unsigned int dec_rfe_etc(DisasContext *dc) return 2; } +static unsigned int dec_ftag_fidx_d_m(DisasContext *dc) +{ + /* Ignore D-cache flushes. */ + return 2; +} + +static unsigned int dec_ftag_fidx_i_m(DisasContext *dc) +{ + /* Ignore I-cache flushes. */ + return 2; +} + static unsigned int dec_null(DisasContext *dc) { printf ("unknown insn pc=%x opc=%x op1=%x op2=%x\n", @@ -2213,8 +2225,8 @@ struct decoder_info { {DEC_NEG_R, dec_neg_r}, {DEC_MOVE_R, dec_move_r}, - /* ftag_fidx_i_m. */ - /* ftag_fidx_d_m. */ + {DEC_FTAG_FIDX_I_M, dec_ftag_fidx_i_m}, + {DEC_FTAG_FIDX_D_M, dec_ftag_fidx_d_m}, {DEC_MULS_R, dec_muls_r}, {DEC_MULU_R, dec_mulu_r}, |