1 | The following changes since commit fc3dbb90f2eb069801bfb4cfe9cbc83cf9c5f4a9: | 1 | Version 2: Drop signed 32-bit guest patches while CI failure examined. |
---|---|---|---|
2 | 2 | ||
3 | Merge remote-tracking branch 'remotes/jnsnow/tags/bitmaps-pull-request' into staging (2019-02-21 13:09:33 +0000) | 3 | |
4 | |||
5 | The following changes since commit 3d1fbc59665ff8a5d74b0fd30583044fe99e1117: | ||
6 | |||
7 | Merge remote-tracking branch 'remotes/nvme/tags/nvme-next-pull-request' into staging (2022-03-04 15:31:23 +0000) | ||
4 | 8 | ||
5 | are available in the Git repository at: | 9 | are available in the Git repository at: |
6 | 10 | ||
7 | https://github.com/rth7680/qemu.git tags/pull-tcg-20190221 | 11 | https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20220304 |
8 | 12 | ||
9 | for you to fetch changes up to 8c6edfdd90522caa4fc429144d393aba5b99f584: | 13 | for you to fetch changes up to cf320769476c3e2820be2a6280bfa1e15baf396f: |
10 | 14 | ||
11 | include/exec/helper-head.h: support "const void *" in helper calls (2019-02-21 10:22:24 -0800) | 15 | tcg/i386: Implement bitsel for avx512 (2022-03-04 08:50:41 -1000) |
12 | 16 | ||
13 | ---------------------------------------------------------------- | 17 | ---------------------------------------------------------------- |
14 | Allow const void * as argument to helpers. | 18 | Reorder do_constant_folding_cond test to satisfy valgrind. |
15 | Remove obsolete TODO file. | 19 | Fix value of MAX_OPC_PARAM_IARGS. |
20 | Add opcodes for vector nand, nor, eqv. | ||
21 | Support vector nand, nor, eqv on PPC and S390X hosts. | ||
22 | Support AVX512VL, AVX512BW, AVX512DQ, and AVX512VBMI2. | ||
16 | 23 | ||
17 | ---------------------------------------------------------------- | 24 | ---------------------------------------------------------------- |
18 | David Hildenbrand (1): | 25 | Alex Bennée (1): |
19 | include/exec/helper-head.h: support "const void *" in helper calls | 26 | tcg/optimize: only read val after const check |
20 | 27 | ||
21 | Richard Henderson (1): | 28 | Richard Henderson (19): |
22 | tcg: Remove TODO file | 29 | tcg: Add opcodes for vector nand, nor, eqv |
30 | tcg/ppc: Implement vector NAND, NOR, EQV | ||
31 | tcg/s390x: Implement vector NAND, NOR, EQV | ||
32 | tcg/i386: Detect AVX512 | ||
33 | tcg/i386: Add tcg_out_evex_opc | ||
34 | tcg/i386: Use tcg_can_emit_vec_op in expand_vec_cmp_noinv | ||
35 | tcg/i386: Implement avx512 variable shifts | ||
36 | tcg/i386: Implement avx512 scalar shift | ||
37 | tcg/i386: Implement avx512 immediate sari shift | ||
38 | tcg/i386: Implement avx512 immediate rotate | ||
39 | tcg/i386: Implement avx512 variable rotate | ||
40 | tcg/i386: Support avx512vbmi2 vector shift-double instructions | ||
41 | tcg/i386: Expand vector word rotate as avx512vbmi2 shift-double | ||
42 | tcg/i386: Remove rotls_vec from tcg_target_op_def | ||
43 | tcg/i386: Expand scalar rotate with avx512 insns | ||
44 | tcg/i386: Implement avx512 min/max/abs | ||
45 | tcg/i386: Implement avx512 multiply | ||
46 | tcg/i386: Implement more logical operations for avx512 | ||
47 | tcg/i386: Implement bitsel for avx512 | ||
23 | 48 | ||
24 | include/exec/helper-head.h | 5 +++++ | 49 | Ziqiao Kong (1): |
25 | tcg/TODO | 14 -------------- | 50 | tcg: Set MAX_OPC_PARAM_IARGS to 7 |
26 | 2 files changed, 5 insertions(+), 14 deletions(-) | ||
27 | delete mode 100644 tcg/TODO | ||
28 | 51 | ||
52 | include/qemu/cpuid.h | 20 ++- | ||
53 | include/tcg/tcg-opc.h | 3 + | ||
54 | include/tcg/tcg.h | 5 +- | ||
55 | tcg/aarch64/tcg-target.h | 3 + | ||
56 | tcg/arm/tcg-target.h | 3 + | ||
57 | tcg/i386/tcg-target-con-set.h | 1 + | ||
58 | tcg/i386/tcg-target.h | 17 +- | ||
59 | tcg/i386/tcg-target.opc.h | 3 + | ||
60 | tcg/ppc/tcg-target.h | 3 + | ||
61 | tcg/s390x/tcg-target.h | 3 + | ||
62 | tcg/optimize.c | 20 +-- | ||
63 | tcg/tcg-op-vec.c | 27 ++- | ||
64 | tcg/tcg.c | 6 + | ||
65 | tcg/i386/tcg-target.c.inc | 387 +++++++++++++++++++++++++++++++++++------- | ||
66 | tcg/ppc/tcg-target.c.inc | 15 ++ | ||
67 | tcg/s390x/tcg-target.c.inc | 17 ++ | ||
68 | tcg/tci/tcg-target.c.inc | 2 +- | ||
69 | 17 files changed, 441 insertions(+), 94 deletions(-) | ||
70 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | The last update to this file was 9 years ago. In the meantime, | ||
2 | 4 of the 6 ideas have actually been completed. The lat two do | ||
3 | not actually make sense anymore. | ||
4 | 1 | ||
5 | Suggested-by: Thomas Huth <thuth@redhat.com> | ||
6 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
7 | --- | ||
8 | tcg/TODO | 14 -------------- | ||
9 | 1 file changed, 14 deletions(-) | ||
10 | delete mode 100644 tcg/TODO | ||
11 | |||
12 | diff --git a/tcg/TODO b/tcg/TODO | ||
13 | deleted file mode 100644 | ||
14 | index XXXXXXX..XXXXXXX | ||
15 | --- a/tcg/TODO | ||
16 | +++ /dev/null | ||
17 | @@ -XXX,XX +XXX,XX @@ | ||
18 | -- Add new instructions such as: clz, ctz, popcnt. | ||
19 | - | ||
20 | -- See if it is worth exporting mul2, mulu2, div2, divu2. | ||
21 | - | ||
22 | -- Support of globals saved in fixed registers between TBs. | ||
23 | - | ||
24 | -Ideas: | ||
25 | - | ||
26 | -- Move the slow part of the qemu_ld/st ops after the end of the TB. | ||
27 | - | ||
28 | -- Change exception syntax to get closer to QOP system (exception | ||
29 | - parameters given with a specific instruction). | ||
30 | - | ||
31 | -- Add float and vector support. | ||
32 | -- | ||
33 | 2.17.2 | ||
34 | |||
35 | diff view generated by jsdifflib |
Deleted patch | |||
---|---|---|---|
1 | From: David Hildenbrand <david@redhat.com> | ||
2 | 1 | ||
3 | Especially when dealing with out-of-line gvec helpers, it is often | ||
4 | helpful to specify some vector pointers as constant. E.g. when | ||
5 | we have two inputs and one output, marking the two inputs as consts | ||
6 | pointers helps to avoid bugs. | ||
7 | |||
8 | Const pointers can be specified via "cptr", however behave in TCG just | ||
9 | like ordinary pointers. We can specify helpers like: | ||
10 | |||
11 | DEF_HELPER_FLAGS_4(gvec_vbperm, TCG_CALL_NO_RWG, void, ptr, cptr, cptr, i32) | ||
12 | |||
13 | void HELPER(gvec_vbperm)(void *v1, const void *v2, const void *v3, | ||
14 | uint32_t desc) | ||
15 | |||
16 | And make sure that here, only v1 will be written (as long as const is | ||
17 | not casted away, of course). | ||
18 | |||
19 | Signed-off-by: David Hildenbrand <david@redhat.com> | ||
20 | Message-Id: <20190221093459.22547-1-david@redhat.com> | ||
21 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
22 | --- | ||
23 | include/exec/helper-head.h | 5 +++++ | ||
24 | 1 file changed, 5 insertions(+) | ||
25 | |||
26 | diff --git a/include/exec/helper-head.h b/include/exec/helper-head.h | ||
27 | index XXXXXXX..XXXXXXX 100644 | ||
28 | --- a/include/exec/helper-head.h | ||
29 | +++ b/include/exec/helper-head.h | ||
30 | @@ -XXX,XX +XXX,XX @@ | ||
31 | #define dh_alias_f32 i32 | ||
32 | #define dh_alias_f64 i64 | ||
33 | #define dh_alias_ptr ptr | ||
34 | +#define dh_alias_cptr ptr | ||
35 | #define dh_alias_void void | ||
36 | #define dh_alias_noreturn noreturn | ||
37 | #define dh_alias(t) glue(dh_alias_, t) | ||
38 | @@ -XXX,XX +XXX,XX @@ | ||
39 | #define dh_ctype_f32 float32 | ||
40 | #define dh_ctype_f64 float64 | ||
41 | #define dh_ctype_ptr void * | ||
42 | +#define dh_ctype_cptr const void * | ||
43 | #define dh_ctype_void void | ||
44 | #define dh_ctype_noreturn void QEMU_NORETURN | ||
45 | #define dh_ctype(t) dh_ctype_##t | ||
46 | @@ -XXX,XX +XXX,XX @@ | ||
47 | #define dh_is_64bit_i32 0 | ||
48 | #define dh_is_64bit_i64 1 | ||
49 | #define dh_is_64bit_ptr (sizeof(void *) == 8) | ||
50 | +#define dh_is_64bit_cptr dh_is_64bit_ptr | ||
51 | #define dh_is_64bit(t) glue(dh_is_64bit_, dh_alias(t)) | ||
52 | |||
53 | #define dh_is_signed_void 0 | ||
54 | @@ -XXX,XX +XXX,XX @@ | ||
55 | extension instructions that may be required, e.g. ia64's addp4. But | ||
56 | for now we don't support any 64-bit targets with 32-bit pointers. */ | ||
57 | #define dh_is_signed_ptr 0 | ||
58 | +#define dh_is_signed_cptr dh_is_signed_ptr | ||
59 | #define dh_is_signed_env dh_is_signed_ptr | ||
60 | #define dh_is_signed(t) dh_is_signed_##t | ||
61 | |||
62 | @@ -XXX,XX +XXX,XX @@ | ||
63 | #define dh_callflag_f32 0 | ||
64 | #define dh_callflag_f64 0 | ||
65 | #define dh_callflag_ptr 0 | ||
66 | +#define dh_callflag_cptr dh_callflag_ptr | ||
67 | #define dh_callflag_void 0 | ||
68 | #define dh_callflag_noreturn TCG_CALL_NO_RETURN | ||
69 | #define dh_callflag(t) glue(dh_callflag_, dh_alias(t)) | ||
70 | -- | ||
71 | 2.17.2 | ||
72 | |||
73 | diff view generated by jsdifflib |