Commit 1b581c440b0545afd5143cc38f86383c23cc8d48
1 parent
f24cb33e
target-alpha: use the new TCG logical operations
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5502 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
6 additions
and
18 deletions
target-alpha/translate.c
| ... | ... | @@ -940,12 +940,8 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) |
| 940 | 940 | if (ra != 31) { |
| 941 | 941 | if (islit) |
| 942 | 942 | tcg_gen_andi_i64(cpu_ir[rc], cpu_ir[ra], ~lit); |
| 943 | - else { | |
| 944 | - TCGv tmp = tcg_temp_new(TCG_TYPE_I64); | |
| 945 | - tcg_gen_not_i64(tmp, cpu_ir[rb]); | |
| 946 | - tcg_gen_and_i64(cpu_ir[rc], cpu_ir[ra], tmp); | |
| 947 | - tcg_temp_free(tmp); | |
| 948 | - } | |
| 943 | + else | |
| 944 | + tcg_gen_andc_i64(cpu_ir[rc], cpu_ir[ra], cpu_ir[rb]); | |
| 949 | 945 | } else |
| 950 | 946 | tcg_gen_movi_i64(cpu_ir[rc], 0); |
| 951 | 947 | } |
| ... | ... | @@ -988,12 +984,8 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) |
| 988 | 984 | if (ra != 31) { |
| 989 | 985 | if (islit) |
| 990 | 986 | tcg_gen_ori_i64(cpu_ir[rc], cpu_ir[ra], ~lit); |
| 991 | - else { | |
| 992 | - TCGv tmp = tcg_temp_new(TCG_TYPE_I64); | |
| 993 | - tcg_gen_not_i64(tmp, cpu_ir[rb]); | |
| 994 | - tcg_gen_or_i64(cpu_ir[rc], cpu_ir[ra], tmp); | |
| 995 | - tcg_temp_free(tmp); | |
| 996 | - } | |
| 987 | + else | |
| 988 | + tcg_gen_orc_i64(cpu_ir[rc], cpu_ir[ra], cpu_ir[rb]); | |
| 997 | 989 | } else { |
| 998 | 990 | if (islit) |
| 999 | 991 | tcg_gen_movi_i64(cpu_ir[rc], ~lit); |
| ... | ... | @@ -1032,12 +1024,8 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) |
| 1032 | 1024 | if (ra != 31) { |
| 1033 | 1025 | if (islit) |
| 1034 | 1026 | tcg_gen_xori_i64(cpu_ir[rc], cpu_ir[ra], ~lit); |
| 1035 | - else { | |
| 1036 | - TCGv tmp = tcg_temp_new(TCG_TYPE_I64); | |
| 1037 | - tcg_gen_not_i64(tmp, cpu_ir[rb]); | |
| 1038 | - tcg_gen_xor_i64(cpu_ir[rc], cpu_ir[ra], tmp); | |
| 1039 | - tcg_temp_free(tmp); | |
| 1040 | - } | |
| 1027 | + else | |
| 1028 | + tcg_gen_eqv_i64(cpu_ir[rc], cpu_ir[ra], cpu_ir[rb]); | |
| 1041 | 1029 | } else { |
| 1042 | 1030 | if (islit) |
| 1043 | 1031 | tcg_gen_movi_i64(cpu_ir[rc], ~lit); | ... | ... |