Commit 821f7e76100f71d9ad104be9d1e12835e201ce80
1 parent
5fc4adf6
Implement ColdFire ff1.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2883 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
14 additions
and
1 deletions
target-m68k/op.c
| @@ -170,6 +170,16 @@ OP(btest) | @@ -170,6 +170,16 @@ OP(btest) | ||
| 170 | FORCE_RET(); | 170 | FORCE_RET(); |
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | +OP(ff1) | ||
| 174 | +{ | ||
| 175 | + uint32_t arg = get_op(PARAM2); | ||
| 176 | + int n; | ||
| 177 | + for (n = 32; arg; n--) | ||
| 178 | + arg >>= 1; | ||
| 179 | + set_op(PARAM1, n); | ||
| 180 | + FORCE_RET(); | ||
| 181 | +} | ||
| 182 | + | ||
| 173 | OP(subx_cc) | 183 | OP(subx_cc) |
| 174 | { | 184 | { |
| 175 | uint32_t op1 = get_op(PARAM1); | 185 | uint32_t op1 = get_op(PARAM1); |
target-m68k/translate.c
| @@ -1929,7 +1929,10 @@ DISAS_INSN(shift_reg) | @@ -1929,7 +1929,10 @@ DISAS_INSN(shift_reg) | ||
| 1929 | 1929 | ||
| 1930 | DISAS_INSN(ff1) | 1930 | DISAS_INSN(ff1) |
| 1931 | { | 1931 | { |
| 1932 | - cpu_abort(NULL, "Unimplemented insn: ff1"); | 1932 | + int reg; |
| 1933 | + reg = DREG(insn, 0); | ||
| 1934 | + gen_logic_cc(s, reg); | ||
| 1935 | + gen_op_ff1(reg, reg); | ||
| 1933 | } | 1936 | } |
| 1934 | 1937 | ||
| 1935 | static int gen_get_sr(DisasContext *s) | 1938 | static int gen_get_sr(DisasContext *s) |