diff options
Diffstat (limited to 'sim/z8k')
-rw-r--r-- | sim/z8k/ChangeLog | 7 | ||||
-rw-r--r-- | sim/z8k/writecode.c | 9 |
2 files changed, 16 insertions, 0 deletions
diff --git a/sim/z8k/ChangeLog b/sim/z8k/ChangeLog index 64468a1..8036fe3 100644 --- a/sim/z8k/ChangeLog +++ b/sim/z8k/ChangeLog @@ -1,3 +1,10 @@ +2002-04-29 Nick Clifton <nickc@cambridge.redhat.com> + + * writecode.c (lookup_inst): Ignore CLASS_IGNORE. + (info_args): Treat CLASS_IGNORE like CLASS_BIT. + Handle ARG_NIM4. + (info_len_in_words): Handle CLASS_IGNORE and ARG_NIM4. + Tue May 23 21:39:23 2000 Andrew Cagney <cagney@b1.cygnus.com> * configure: Regenerated to track ../common/aclocal.m4 changes. diff --git a/sim/z8k/writecode.c b/sim/z8k/writecode.c index 8b4c868..b398545 100644 --- a/sim/z8k/writecode.c +++ b/sim/z8k/writecode.c @@ -139,6 +139,8 @@ lookup_inst (what) nibl_matched = 0; break; + case CLASS_IGNORE: + break; case CLASS_BIT: if (datum_value != instr_nibl) nibl_matched = 0; @@ -539,6 +541,7 @@ info_args (p) case CLASS_BIT_1OR2: emit ("register unsigned int imm_src=(<insn_4>& 2)?2:1;\n"); break; + case CLASS_IGNORE: case CLASS_BIT: /* Just ignore these, we've already decoded this bit */ nibs++; @@ -589,6 +592,10 @@ break; emit ("register unsigned int imm_src=<insn_4>;\n"); nibs++; break; + case ARG_NIM4: + emit ("register unsigned int imm_src = - <insn_4>;\n"); + nibs++; + break; case ARG_IMM2: emit ("register unsigned int imm_src=<insn_4> & 0x2;\n"); nibs++; @@ -1938,6 +1945,7 @@ info_len_in_words (o) { switch (*p & CLASS_MASK) { + case CLASS_IGNORE: case CLASS_BIT: case CLASS_REGN0: case CLASS_REG: @@ -1959,6 +1967,7 @@ info_len_in_words (o) break; case ARG_IMM2: case ARG_IMM4: + case ARG_NIM4: case ARG_IMM4M1: case ARG_IMM_1: case ARG_IMM_2: |