Skip to content

Commit c334de1

Browse files
committed
tcg: Remove TCG_TARGET_HAS_{s}extract_{i32,i64}
Make extract and sextract "unconditional" in the sense that the opcodes are always present. Rely instead on TCG_TARGET_HAS_{s}extract_valid, now always defined. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
1 parent 41736e7 commit c334de1

File tree

14 files changed

+8
-70
lines changed

14 files changed

+8
-70
lines changed

tcg/aarch64/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
#define TCG_TARGET_HAS_ctz_i32 1
3333
#define TCG_TARGET_HAS_ctpop_i32 0
3434
#define TCG_TARGET_HAS_deposit_i32 1
35-
#define TCG_TARGET_HAS_extract_i32 1
36-
#define TCG_TARGET_HAS_sextract_i32 1
3735
#define TCG_TARGET_HAS_extract2_i32 1
3836
#define TCG_TARGET_HAS_negsetcond_i32 1
3937
#define TCG_TARGET_HAS_add2_i32 1
@@ -67,8 +65,6 @@
6765
#define TCG_TARGET_HAS_ctz_i64 1
6866
#define TCG_TARGET_HAS_ctpop_i64 0
6967
#define TCG_TARGET_HAS_deposit_i64 1
70-
#define TCG_TARGET_HAS_extract_i64 1
71-
#define TCG_TARGET_HAS_sextract_i64 1
7268
#define TCG_TARGET_HAS_extract2_i64 1
7369
#define TCG_TARGET_HAS_negsetcond_i64 1
7470
#define TCG_TARGET_HAS_add2_i64 1

tcg/arm/tcg-target-has.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ extern bool use_neon_instructions;
4141
#define TCG_TARGET_HAS_ctz_i32 use_armv7_instructions
4242
#define TCG_TARGET_HAS_ctpop_i32 0
4343
#define TCG_TARGET_HAS_deposit_i32 use_armv7_instructions
44-
#define TCG_TARGET_HAS_extract_i32 1
45-
#define TCG_TARGET_HAS_sextract_i32 1
4644
#define TCG_TARGET_HAS_extract2_i32 1
4745
#define TCG_TARGET_HAS_negsetcond_i32 1
4846
#define TCG_TARGET_HAS_mulu2_i32 1

tcg/i386/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@
4444
#define TCG_TARGET_HAS_ctz_i32 1
4545
#define TCG_TARGET_HAS_ctpop_i32 have_popcnt
4646
#define TCG_TARGET_HAS_deposit_i32 1
47-
#define TCG_TARGET_HAS_extract_i32 1
48-
#define TCG_TARGET_HAS_sextract_i32 1
4947
#define TCG_TARGET_HAS_extract2_i32 1
5048
#define TCG_TARGET_HAS_negsetcond_i32 1
5149
#define TCG_TARGET_HAS_add2_i32 1
@@ -79,8 +77,6 @@
7977
#define TCG_TARGET_HAS_ctz_i64 1
8078
#define TCG_TARGET_HAS_ctpop_i64 have_popcnt
8179
#define TCG_TARGET_HAS_deposit_i64 1
82-
#define TCG_TARGET_HAS_extract_i64 1
83-
#define TCG_TARGET_HAS_sextract_i64 1
8480
#define TCG_TARGET_HAS_extract2_i64 1
8581
#define TCG_TARGET_HAS_negsetcond_i64 1
8682
#define TCG_TARGET_HAS_add2_i64 1

tcg/loongarch64/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
#define TCG_TARGET_HAS_div2_i32 0
1717
#define TCG_TARGET_HAS_rot_i32 1
1818
#define TCG_TARGET_HAS_deposit_i32 1
19-
#define TCG_TARGET_HAS_extract_i32 1
20-
#define TCG_TARGET_HAS_sextract_i32 1
2119
#define TCG_TARGET_HAS_extract2_i32 0
2220
#define TCG_TARGET_HAS_add2_i32 0
2321
#define TCG_TARGET_HAS_sub2_i32 0
@@ -51,8 +49,6 @@
5149
#define TCG_TARGET_HAS_div2_i64 0
5250
#define TCG_TARGET_HAS_rot_i64 1
5351
#define TCG_TARGET_HAS_deposit_i64 1
54-
#define TCG_TARGET_HAS_extract_i64 1
55-
#define TCG_TARGET_HAS_sextract_i64 1
5652
#define TCG_TARGET_HAS_extract2_i64 0
5753
#define TCG_TARGET_HAS_extr_i64_i32 1
5854
#define TCG_TARGET_HAS_ext8s_i64 1

tcg/mips/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,6 @@ extern bool use_mips32r2_instructions;
8080

8181
/* optional instructions detected at runtime */
8282
#define TCG_TARGET_HAS_deposit_i32 use_mips32r2_instructions
83-
#define TCG_TARGET_HAS_extract_i32 1
84-
#define TCG_TARGET_HAS_sextract_i32 1
8583
#define TCG_TARGET_HAS_extract2_i32 0
8684
#define TCG_TARGET_HAS_ext8s_i32 use_mips32r2_instructions
8785
#define TCG_TARGET_HAS_ext16s_i32 use_mips32r2_instructions
@@ -96,8 +94,6 @@ extern bool use_mips32r2_instructions;
9694
#define TCG_TARGET_HAS_bswap32_i64 1
9795
#define TCG_TARGET_HAS_bswap64_i64 1
9896
#define TCG_TARGET_HAS_deposit_i64 use_mips32r2_instructions
99-
#define TCG_TARGET_HAS_extract_i64 1
100-
#define TCG_TARGET_HAS_sextract_i64 1
10197
#define TCG_TARGET_HAS_extract2_i64 0
10298
#define TCG_TARGET_HAS_ext8s_i64 use_mips32r2_instructions
10399
#define TCG_TARGET_HAS_ext16s_i64 use_mips32r2_instructions

tcg/optimize.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2363,10 +2363,10 @@ static void fold_setcond_tst_pow2(OptContext *ctx, TCGOp *op, bool neg)
23632363
shr_opc = INDEX_op_shr_i32;
23642364
neg_opc = INDEX_op_neg_i32;
23652365
if (TCG_TARGET_extract_valid(TCG_TYPE_I32, sh, 1)) {
2366-
uext_opc = TCG_TARGET_HAS_extract_i32 ? INDEX_op_extract_i32 : 0;
2366+
uext_opc = INDEX_op_extract_i32;
23672367
}
23682368
if (TCG_TARGET_sextract_valid(TCG_TYPE_I32, sh, 1)) {
2369-
sext_opc = TCG_TARGET_HAS_sextract_i32 ? INDEX_op_sextract_i32 : 0;
2369+
sext_opc = INDEX_op_sextract_i32;
23702370
}
23712371
break;
23722372
case TCG_TYPE_I64:
@@ -2376,10 +2376,10 @@ static void fold_setcond_tst_pow2(OptContext *ctx, TCGOp *op, bool neg)
23762376
shr_opc = INDEX_op_shr_i64;
23772377
neg_opc = INDEX_op_neg_i64;
23782378
if (TCG_TARGET_extract_valid(TCG_TYPE_I64, sh, 1)) {
2379-
uext_opc = TCG_TARGET_HAS_extract_i64 ? INDEX_op_extract_i64 : 0;
2379+
uext_opc = INDEX_op_extract_i64;
23802380
}
23812381
if (TCG_TARGET_sextract_valid(TCG_TYPE_I64, sh, 1)) {
2382-
sext_opc = TCG_TARGET_HAS_sextract_i64 ? INDEX_op_sextract_i64 : 0;
2382+
sext_opc = INDEX_op_sextract_i64;
23832383
}
23842384
break;
23852385
default:

tcg/ppc/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@
3838
#define TCG_TARGET_HAS_ctz_i32 have_isa_3_00
3939
#define TCG_TARGET_HAS_ctpop_i32 have_isa_2_06
4040
#define TCG_TARGET_HAS_deposit_i32 1
41-
#define TCG_TARGET_HAS_extract_i32 1
42-
#define TCG_TARGET_HAS_sextract_i32 1
4341
#define TCG_TARGET_HAS_extract2_i32 0
4442
#define TCG_TARGET_HAS_negsetcond_i32 1
4543
#define TCG_TARGET_HAS_mulu2_i32 0
@@ -74,8 +72,6 @@
7472
#define TCG_TARGET_HAS_ctz_i64 have_isa_3_00
7573
#define TCG_TARGET_HAS_ctpop_i64 have_isa_2_06
7674
#define TCG_TARGET_HAS_deposit_i64 1
77-
#define TCG_TARGET_HAS_extract_i64 1
78-
#define TCG_TARGET_HAS_sextract_i64 1
7975
#define TCG_TARGET_HAS_extract2_i64 0
8076
#define TCG_TARGET_HAS_negsetcond_i64 1
8177
#define TCG_TARGET_HAS_add2_i64 1

tcg/riscv/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
#define TCG_TARGET_HAS_div2_i32 0
1717
#define TCG_TARGET_HAS_rot_i32 (cpuinfo & CPUINFO_ZBB)
1818
#define TCG_TARGET_HAS_deposit_i32 0
19-
#define TCG_TARGET_HAS_extract_i32 1
20-
#define TCG_TARGET_HAS_sextract_i32 1
2119
#define TCG_TARGET_HAS_extract2_i32 0
2220
#define TCG_TARGET_HAS_add2_i32 1
2321
#define TCG_TARGET_HAS_sub2_i32 1
@@ -50,8 +48,6 @@
5048
#define TCG_TARGET_HAS_div2_i64 0
5149
#define TCG_TARGET_HAS_rot_i64 (cpuinfo & CPUINFO_ZBB)
5250
#define TCG_TARGET_HAS_deposit_i64 0
53-
#define TCG_TARGET_HAS_extract_i64 1
54-
#define TCG_TARGET_HAS_sextract_i64 1
5551
#define TCG_TARGET_HAS_extract2_i64 0
5652
#define TCG_TARGET_HAS_extr_i64_i32 1
5753
#define TCG_TARGET_HAS_ext8s_i64 1

tcg/s390x/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ extern uint64_t s390_facilities[3];
4747
#define TCG_TARGET_HAS_ctz_i32 0
4848
#define TCG_TARGET_HAS_ctpop_i32 1
4949
#define TCG_TARGET_HAS_deposit_i32 1
50-
#define TCG_TARGET_HAS_extract_i32 1
51-
#define TCG_TARGET_HAS_sextract_i32 1
5250
#define TCG_TARGET_HAS_extract2_i32 0
5351
#define TCG_TARGET_HAS_negsetcond_i32 1
5452
#define TCG_TARGET_HAS_add2_i32 1
@@ -81,8 +79,6 @@ extern uint64_t s390_facilities[3];
8179
#define TCG_TARGET_HAS_ctz_i64 0
8280
#define TCG_TARGET_HAS_ctpop_i64 1
8381
#define TCG_TARGET_HAS_deposit_i64 1
84-
#define TCG_TARGET_HAS_extract_i64 1
85-
#define TCG_TARGET_HAS_sextract_i64 1
8682
#define TCG_TARGET_HAS_extract2_i64 0
8783
#define TCG_TARGET_HAS_negsetcond_i64 1
8884
#define TCG_TARGET_HAS_add2_i64 1

tcg/sparc64/tcg-target-has.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ extern bool use_vis3_instructions;
3333
#define TCG_TARGET_HAS_ctz_i32 0
3434
#define TCG_TARGET_HAS_ctpop_i32 0
3535
#define TCG_TARGET_HAS_deposit_i32 0
36-
#define TCG_TARGET_HAS_extract_i32 1
37-
#define TCG_TARGET_HAS_sextract_i32 1
3836
#define TCG_TARGET_HAS_extract2_i32 0
3937
#define TCG_TARGET_HAS_negsetcond_i32 1
4038
#define TCG_TARGET_HAS_add2_i32 1
@@ -68,8 +66,6 @@ extern bool use_vis3_instructions;
6866
#define TCG_TARGET_HAS_ctz_i64 0
6967
#define TCG_TARGET_HAS_ctpop_i64 0
7068
#define TCG_TARGET_HAS_deposit_i64 0
71-
#define TCG_TARGET_HAS_extract_i64 1
72-
#define TCG_TARGET_HAS_sextract_i64 1
7369
#define TCG_TARGET_HAS_extract2_i64 0
7470
#define TCG_TARGET_HAS_negsetcond_i64 1
7571
#define TCG_TARGET_HAS_add2_i64 1

0 commit comments

Comments
 (0)