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 | /************************/ |