diff options
author | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-05-28 02:20:34 +0000 |
---|---|---|
committer | pbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-05-28 02:20:34 +0000 |
commit | 821f7e76100f71d9ad104be9d1e12835e201ce80 (patch) | |
tree | 4c754e59155c7f7a74d54407f5f68b7b5090b239 /target-m68k | |
parent | 5fc4adf6cedc991c0ee9f16a5d2431bcca07c902 (diff) |
Implement ColdFire ff1.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2883 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-m68k')
-rw-r--r-- | target-m68k/op.c | 10 | ||||
-rw-r--r-- | target-m68k/translate.c | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/target-m68k/op.c b/target-m68k/op.c index 69d1fde9a7..d483488be8 100644 --- a/target-m68k/op.c +++ b/target-m68k/op.c @@ -170,6 +170,16 @@ OP(btest) FORCE_RET(); } +OP(ff1) +{ + uint32_t arg = get_op(PARAM2); + int n; + for (n = 32; arg; n--) + arg >>= 1; + set_op(PARAM1, n); + FORCE_RET(); +} + OP(subx_cc) { uint32_t op1 = get_op(PARAM1); diff --git a/target-m68k/translate.c b/target-m68k/translate.c index 52f38e4c0c..7c91760278 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -1929,7 +1929,10 @@ DISAS_INSN(shift_reg) DISAS_INSN(ff1) { - cpu_abort(NULL, "Unimplemented insn: ff1"); + int reg; + reg = DREG(insn, 0); + gen_logic_cc(s, reg); + gen_op_ff1(reg, reg); } static int gen_get_sr(DisasContext *s) |