summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-21 13:24:30 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2008-05-21 13:24:30 +0000
commit9d0763c4c0bc7840a3113abf39aae6dd87e9be91 (patch)
tree498bbaab53ee88ae499d4c475f59cebe6392a234
parent0211e5aff995ee55722148923a7fc317796e4114 (diff)
downloadhqemu-9d0763c4c0bc7840a3113abf39aae6dd87e9be91.zip
hqemu-9d0763c4c0bc7840a3113abf39aae6dd87e9be91.tar.gz
converted BCD ops to TCG
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4509 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-i386/op.c32
-rw-r--r--target-i386/translate.c12
2 files changed, 6 insertions, 38 deletions
diff --git a/target-i386/op.c b/target-i386/op.c
index e8f342c..6ef1474 100644
--- a/target-i386/op.c
+++ b/target-i386/op.c
@@ -165,38 +165,6 @@ void OPPROTO op_cmpxchg8b(void)
#endif
-/* bcd */
-
-void OPPROTO op_aam(void)
-{
- helper_aam(PARAM1);
-}
-
-void OPPROTO op_aad(void)
-{
- helper_aad(PARAM1);
-}
-
-void OPPROTO op_aaa(void)
-{
- helper_aaa();
-}
-
-void OPPROTO op_aas(void)
-{
- helper_aas();
-}
-
-void OPPROTO op_daa(void)
-{
- helper_daa();
-}
-
-void OPPROTO op_das(void)
-{
- helper_das();
-}
-
/* segment handling */
/* faster VM86 version */
diff --git a/target-i386/translate.c b/target-i386/translate.c
index c73fac9..c7994a1 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -5926,7 +5926,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
goto illegal_op;
if (s->cc_op != CC_OP_DYNAMIC)
gen_op_set_cc_op(s->cc_op);
- gen_op_daa();
+ tcg_gen_helper_0_0(helper_daa);
s->cc_op = CC_OP_EFLAGS;
break;
case 0x2f: /* das */
@@ -5934,7 +5934,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
goto illegal_op;
if (s->cc_op != CC_OP_DYNAMIC)
gen_op_set_cc_op(s->cc_op);
- gen_op_das();
+ tcg_gen_helper_0_0(helper_das);
s->cc_op = CC_OP_EFLAGS;
break;
case 0x37: /* aaa */
@@ -5942,7 +5942,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
goto illegal_op;
if (s->cc_op != CC_OP_DYNAMIC)
gen_op_set_cc_op(s->cc_op);
- gen_op_aaa();
+ tcg_gen_helper_0_0(helper_aaa);
s->cc_op = CC_OP_EFLAGS;
break;
case 0x3f: /* aas */
@@ -5950,7 +5950,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
goto illegal_op;
if (s->cc_op != CC_OP_DYNAMIC)
gen_op_set_cc_op(s->cc_op);
- gen_op_aas();
+ tcg_gen_helper_0_0(helper_aas);
s->cc_op = CC_OP_EFLAGS;
break;
case 0xd4: /* aam */
@@ -5960,7 +5960,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
if (val == 0) {
gen_exception(s, EXCP00_DIVZ, pc_start - s->cs_base);
} else {
- gen_op_aam(val);
+ tcg_gen_helper_0_1(helper_aam, tcg_const_i32(val));
s->cc_op = CC_OP_LOGICB;
}
break;
@@ -5968,7 +5968,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
if (CODE64(s))
goto illegal_op;
val = ldub_code(s->pc++);
- gen_op_aad(val);
+ tcg_gen_helper_0_1(helper_aad, tcg_const_i32(val));
s->cc_op = CC_OP_LOGICB;
break;
/************************/
OpenPOWER on IntegriCloud