Commit 9d0763c4c0bc7840a3113abf39aae6dd87e9be91
1 parent
0211e5af
converted BCD ops to TCG
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4509 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
6 additions
and
38 deletions
target-i386/op.c
| @@ -165,38 +165,6 @@ void OPPROTO op_cmpxchg8b(void) | @@ -165,38 +165,6 @@ void OPPROTO op_cmpxchg8b(void) | ||
| 165 | 165 | ||
| 166 | #endif | 166 | #endif |
| 167 | 167 | ||
| 168 | -/* bcd */ | ||
| 169 | - | ||
| 170 | -void OPPROTO op_aam(void) | ||
| 171 | -{ | ||
| 172 | - helper_aam(PARAM1); | ||
| 173 | -} | ||
| 174 | - | ||
| 175 | -void OPPROTO op_aad(void) | ||
| 176 | -{ | ||
| 177 | - helper_aad(PARAM1); | ||
| 178 | -} | ||
| 179 | - | ||
| 180 | -void OPPROTO op_aaa(void) | ||
| 181 | -{ | ||
| 182 | - helper_aaa(); | ||
| 183 | -} | ||
| 184 | - | ||
| 185 | -void OPPROTO op_aas(void) | ||
| 186 | -{ | ||
| 187 | - helper_aas(); | ||
| 188 | -} | ||
| 189 | - | ||
| 190 | -void OPPROTO op_daa(void) | ||
| 191 | -{ | ||
| 192 | - helper_daa(); | ||
| 193 | -} | ||
| 194 | - | ||
| 195 | -void OPPROTO op_das(void) | ||
| 196 | -{ | ||
| 197 | - helper_das(); | ||
| 198 | -} | ||
| 199 | - | ||
| 200 | /* segment handling */ | 168 | /* segment handling */ |
| 201 | 169 | ||
| 202 | /* faster VM86 version */ | 170 | /* faster VM86 version */ |
target-i386/translate.c
| @@ -5926,7 +5926,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | @@ -5926,7 +5926,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | ||
| 5926 | goto illegal_op; | 5926 | goto illegal_op; |
| 5927 | if (s->cc_op != CC_OP_DYNAMIC) | 5927 | if (s->cc_op != CC_OP_DYNAMIC) |
| 5928 | gen_op_set_cc_op(s->cc_op); | 5928 | gen_op_set_cc_op(s->cc_op); |
| 5929 | - gen_op_daa(); | 5929 | + tcg_gen_helper_0_0(helper_daa); |
| 5930 | s->cc_op = CC_OP_EFLAGS; | 5930 | s->cc_op = CC_OP_EFLAGS; |
| 5931 | break; | 5931 | break; |
| 5932 | case 0x2f: /* das */ | 5932 | case 0x2f: /* das */ |
| @@ -5934,7 +5934,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | @@ -5934,7 +5934,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | ||
| 5934 | goto illegal_op; | 5934 | goto illegal_op; |
| 5935 | if (s->cc_op != CC_OP_DYNAMIC) | 5935 | if (s->cc_op != CC_OP_DYNAMIC) |
| 5936 | gen_op_set_cc_op(s->cc_op); | 5936 | gen_op_set_cc_op(s->cc_op); |
| 5937 | - gen_op_das(); | 5937 | + tcg_gen_helper_0_0(helper_das); |
| 5938 | s->cc_op = CC_OP_EFLAGS; | 5938 | s->cc_op = CC_OP_EFLAGS; |
| 5939 | break; | 5939 | break; |
| 5940 | case 0x37: /* aaa */ | 5940 | case 0x37: /* aaa */ |
| @@ -5942,7 +5942,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | @@ -5942,7 +5942,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | ||
| 5942 | goto illegal_op; | 5942 | goto illegal_op; |
| 5943 | if (s->cc_op != CC_OP_DYNAMIC) | 5943 | if (s->cc_op != CC_OP_DYNAMIC) |
| 5944 | gen_op_set_cc_op(s->cc_op); | 5944 | gen_op_set_cc_op(s->cc_op); |
| 5945 | - gen_op_aaa(); | 5945 | + tcg_gen_helper_0_0(helper_aaa); |
| 5946 | s->cc_op = CC_OP_EFLAGS; | 5946 | s->cc_op = CC_OP_EFLAGS; |
| 5947 | break; | 5947 | break; |
| 5948 | case 0x3f: /* aas */ | 5948 | case 0x3f: /* aas */ |
| @@ -5950,7 +5950,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | @@ -5950,7 +5950,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | ||
| 5950 | goto illegal_op; | 5950 | goto illegal_op; |
| 5951 | if (s->cc_op != CC_OP_DYNAMIC) | 5951 | if (s->cc_op != CC_OP_DYNAMIC) |
| 5952 | gen_op_set_cc_op(s->cc_op); | 5952 | gen_op_set_cc_op(s->cc_op); |
| 5953 | - gen_op_aas(); | 5953 | + tcg_gen_helper_0_0(helper_aas); |
| 5954 | s->cc_op = CC_OP_EFLAGS; | 5954 | s->cc_op = CC_OP_EFLAGS; |
| 5955 | break; | 5955 | break; |
| 5956 | case 0xd4: /* aam */ | 5956 | case 0xd4: /* aam */ |
| @@ -5960,7 +5960,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | @@ -5960,7 +5960,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | ||
| 5960 | if (val == 0) { | 5960 | if (val == 0) { |
| 5961 | gen_exception(s, EXCP00_DIVZ, pc_start - s->cs_base); | 5961 | gen_exception(s, EXCP00_DIVZ, pc_start - s->cs_base); |
| 5962 | } else { | 5962 | } else { |
| 5963 | - gen_op_aam(val); | 5963 | + tcg_gen_helper_0_1(helper_aam, tcg_const_i32(val)); |
| 5964 | s->cc_op = CC_OP_LOGICB; | 5964 | s->cc_op = CC_OP_LOGICB; |
| 5965 | } | 5965 | } |
| 5966 | break; | 5966 | break; |
| @@ -5968,7 +5968,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | @@ -5968,7 +5968,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) | ||
| 5968 | if (CODE64(s)) | 5968 | if (CODE64(s)) |
| 5969 | goto illegal_op; | 5969 | goto illegal_op; |
| 5970 | val = ldub_code(s->pc++); | 5970 | val = ldub_code(s->pc++); |
| 5971 | - gen_op_aad(val); | 5971 | + tcg_gen_helper_0_1(helper_aad, tcg_const_i32(val)); |
| 5972 | s->cc_op = CC_OP_LOGICB; | 5972 | s->cc_op = CC_OP_LOGICB; |
| 5973 | break; | 5973 | break; |
| 5974 | /************************/ | 5974 | /************************/ |