1 | The following changes since commit fc3dbb90f2eb069801bfb4cfe9cbc83cf9c5f4a9: | 1 | Version 2 drops the bsd cleanup and includes a minor improvement |
---|---|---|---|
2 | to the dump of the constant pool. | ||
2 | 3 | ||
3 | Merge remote-tracking branch 'remotes/jnsnow/tags/bitmaps-pull-request' into staging (2019-02-21 13:09:33 +0000) | 4 | |
5 | r~ | ||
6 | |||
7 | |||
8 | The following changes since commit 2d3fc4e2b069494b1e9e2e4a1e3de24cbc036426: | ||
9 | |||
10 | Merge remote-tracking branch 'remotes/armbru/tags/pull-misc-2021-05-12' into staging (2021-05-13 20:13:24 +0100) | ||
4 | 11 | ||
5 | are available in the Git repository at: | 12 | are available in the Git repository at: |
6 | 13 | ||
7 | https://github.com/rth7680/qemu.git tags/pull-tcg-20190221 | 14 | https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20210516 |
8 | 15 | ||
9 | for you to fetch changes up to 8c6edfdd90522caa4fc429144d393aba5b99f584: | 16 | for you to fetch changes up to 6c6a4a76eea900112c343ba4f9c5737e298feddf: |
10 | 17 | ||
11 | include/exec/helper-head.h: support "const void *" in helper calls (2019-02-21 10:22:24 -0800) | 18 | accel/tcg: Align data dumped at end of TB (2021-05-16 09:05:14 -0500) |
12 | 19 | ||
13 | ---------------------------------------------------------------- | 20 | ---------------------------------------------------------------- |
14 | Allow const void * as argument to helpers. | 21 | Minor MAINTAINERS update. |
15 | Remove obsolete TODO file. | 22 | Tweak to includes. |
23 | Add tcg_constant_tl. | ||
24 | Improve constant pool dump. | ||
16 | 25 | ||
17 | ---------------------------------------------------------------- | 26 | ---------------------------------------------------------------- |
18 | David Hildenbrand (1): | 27 | Matheus Ferst (1): |
19 | include/exec/helper-head.h: support "const void *" in helper calls | 28 | tcg: Add tcg_constant_tl |
20 | 29 | ||
21 | Richard Henderson (1): | 30 | Philippe Mathieu-Daudé (3): |
22 | tcg: Remove TODO file | 31 | MAINTAINERS: Add include/exec/gen-icount.h to 'Main Loop' section |
32 | exec/gen-icount.h: Add missing "exec/exec-all.h" include | ||
33 | accel/tcg: Align data dumped at end of TB | ||
23 | 34 | ||
24 | include/exec/helper-head.h | 5 +++++ | 35 | include/exec/gen-icount.h | 1 + |
25 | tcg/TODO | 14 -------------- | 36 | include/tcg/tcg-op.h | 2 ++ |
26 | 2 files changed, 5 insertions(+), 14 deletions(-) | 37 | accel/tcg/translate-all.c | 11 +++++++++-- |
27 | delete mode 100644 tcg/TODO | 38 | MAINTAINERS | 1 + |
39 | 4 files changed, 13 insertions(+), 2 deletions(-) | ||
28 | 40 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
3 | As the 'Main Loop' section covers softmmu/icount.c, | ||
4 | add "exec/gen-icount.h" there too. | ||
5 | |||
6 | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
7 | Message-Id: <20210422064128.2318616-2-f4bug@amsat.org> | ||
8 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
9 | --- | ||
10 | MAINTAINERS | 1 + | ||
11 | 1 file changed, 1 insertion(+) | ||
12 | |||
13 | diff --git a/MAINTAINERS b/MAINTAINERS | ||
14 | index XXXXXXX..XXXXXXX 100644 | ||
15 | --- a/MAINTAINERS | ||
16 | +++ b/MAINTAINERS | ||
17 | @@ -XXX,XX +XXX,XX @@ F: ui/cocoa.m | ||
18 | Main loop | ||
19 | M: Paolo Bonzini <pbonzini@redhat.com> | ||
20 | S: Maintained | ||
21 | +F: include/exec/gen-icount.h | ||
22 | F: include/qemu/main-loop.h | ||
23 | F: include/sysemu/runstate.h | ||
24 | F: include/sysemu/runstate-action.h | ||
25 | -- | ||
26 | 2.25.1 | ||
27 | |||
28 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
3 | When including "exec/gen-icount.h" we get: | ||
4 | |||
5 | include/exec/gen-icount.h: In function ‘gen_tb_start’: | ||
6 | include/exec/gen-icount.h:40:9: error: implicit declaration of function ‘tb_cflags’ [-Werror=implicit-function-declaration] | ||
7 | 40 | if (tb_cflags(tb) & CF_USE_ICOUNT) { | ||
8 | | ^~~~~~~~~ | ||
9 | include/exec/gen-icount.h:40:9: error: nested extern declaration of ‘tb_cflags’ [-Werror=nested-externs] | ||
10 | include/exec/gen-icount.h:40:25: error: ‘CF_USE_ICOUNT’ undeclared (first use in this function); did you mean ‘CPU_COUNT’? | ||
11 | 40 | if (tb_cflags(tb) & CF_USE_ICOUNT) { | ||
12 | | ^~~~~~~~~~~~~ | ||
13 | | CPU_COUNT | ||
14 | |||
15 | Since tb_cflags() is declared in "exec/exec-all.h", include this | ||
16 | header in "exec/gen-icount.h". | ||
17 | |||
18 | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
19 | Message-Id: <20210422064128.2318616-3-f4bug@amsat.org> | ||
20 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | ||
21 | --- | ||
22 | include/exec/gen-icount.h | 1 + | ||
23 | 1 file changed, 1 insertion(+) | ||
24 | |||
25 | diff --git a/include/exec/gen-icount.h b/include/exec/gen-icount.h | ||
26 | index XXXXXXX..XXXXXXX 100644 | ||
27 | --- a/include/exec/gen-icount.h | ||
28 | +++ b/include/exec/gen-icount.h | ||
29 | @@ -XXX,XX +XXX,XX @@ | ||
30 | #ifndef GEN_ICOUNT_H | ||
31 | #define GEN_ICOUNT_H | ||
32 | |||
33 | +#include "exec/exec-all.h" | ||
34 | #include "qemu/timer.h" | ||
35 | |||
36 | /* Helpers for instruction counting code generation. */ | ||
37 | -- | ||
38 | 2.25.1 | ||
39 | |||
40 | diff view generated by jsdifflib |
1 | From: David Hildenbrand <david@redhat.com> | 1 | From: Matheus Ferst <matheus.ferst@eldorado.org.br> |
---|---|---|---|
2 | 2 | ||
3 | Especially when dealing with out-of-line gvec helpers, it is often | 3 | Used in ppc D/DS/X-form load/store implementation. |
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 | 4 | ||
8 | Const pointers can be specified via "cptr", however behave in TCG just | 5 | Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br> |
9 | like ordinary pointers. We can specify helpers like: | 6 | Message-Id: <20210512185441.3619828-24-matheus.ferst@eldorado.org.br> |
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> | 7 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> |
22 | --- | 8 | --- |
23 | include/exec/helper-head.h | 5 +++++ | 9 | include/tcg/tcg-op.h | 2 ++ |
24 | 1 file changed, 5 insertions(+) | 10 | 1 file changed, 2 insertions(+) |
25 | 11 | ||
26 | diff --git a/include/exec/helper-head.h b/include/exec/helper-head.h | 12 | diff --git a/include/tcg/tcg-op.h b/include/tcg/tcg-op.h |
27 | index XXXXXXX..XXXXXXX 100644 | 13 | index XXXXXXX..XXXXXXX 100644 |
28 | --- a/include/exec/helper-head.h | 14 | --- a/include/tcg/tcg-op.h |
29 | +++ b/include/exec/helper-head.h | 15 | +++ b/include/tcg/tcg-op.h |
30 | @@ -XXX,XX +XXX,XX @@ | 16 | @@ -XXX,XX +XXX,XX @@ void tcg_gen_stl_vec(TCGv_vec r, TCGv_ptr base, TCGArg offset, TCGType t); |
31 | #define dh_alias_f32 i32 | 17 | #define tcg_gen_sextract_tl tcg_gen_sextract_i64 |
32 | #define dh_alias_f64 i64 | 18 | #define tcg_gen_extract2_tl tcg_gen_extract2_i64 |
33 | #define dh_alias_ptr ptr | 19 | #define tcg_const_tl tcg_const_i64 |
34 | +#define dh_alias_cptr ptr | 20 | +#define tcg_constant_tl tcg_constant_i64 |
35 | #define dh_alias_void void | 21 | #define tcg_const_local_tl tcg_const_local_i64 |
36 | #define dh_alias_noreturn noreturn | 22 | #define tcg_gen_movcond_tl tcg_gen_movcond_i64 |
37 | #define dh_alias(t) glue(dh_alias_, t) | 23 | #define tcg_gen_add2_tl tcg_gen_add2_i64 |
38 | @@ -XXX,XX +XXX,XX @@ | 24 | @@ -XXX,XX +XXX,XX @@ void tcg_gen_stl_vec(TCGv_vec r, TCGv_ptr base, TCGArg offset, TCGType t); |
39 | #define dh_ctype_f32 float32 | 25 | #define tcg_gen_sextract_tl tcg_gen_sextract_i32 |
40 | #define dh_ctype_f64 float64 | 26 | #define tcg_gen_extract2_tl tcg_gen_extract2_i32 |
41 | #define dh_ctype_ptr void * | 27 | #define tcg_const_tl tcg_const_i32 |
42 | +#define dh_ctype_cptr const void * | 28 | +#define tcg_constant_tl tcg_constant_i32 |
43 | #define dh_ctype_void void | 29 | #define tcg_const_local_tl tcg_const_local_i32 |
44 | #define dh_ctype_noreturn void QEMU_NORETURN | 30 | #define tcg_gen_movcond_tl tcg_gen_movcond_i32 |
45 | #define dh_ctype(t) dh_ctype_##t | 31 | #define tcg_gen_add2_tl tcg_gen_add2_i32 |
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 | -- | 32 | -- |
71 | 2.17.2 | 33 | 2.25.1 |
72 | 34 | ||
73 | 35 | diff view generated by jsdifflib |
1 | The last update to this file was 9 years ago. In the meantime, | 1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> |
---|---|---|---|
2 | 4 of the 6 ideas have actually been completed. The lat two do | ||
3 | not actually make sense anymore. | ||
4 | 2 | ||
5 | Suggested-by: Thomas Huth <thuth@redhat.com> | 3 | To better visualize the data dumped at the end of a TB, left-align it |
4 | (padding it with 0). Print ".long" instead of ".quad" on 32-bit hosts. | ||
5 | |||
6 | Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
7 | Message-Id: <20210515104202.241504-1-f4bug@amsat.org> | ||
8 | [rth: Split the qemu_log and print .long for 32-bit hosts.] | ||
6 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> | 9 | Signed-off-by: Richard Henderson <richard.henderson@linaro.org> |
7 | --- | 10 | --- |
8 | tcg/TODO | 14 -------------- | 11 | accel/tcg/translate-all.c | 11 +++++++++-- |
9 | 1 file changed, 14 deletions(-) | 12 | 1 file changed, 9 insertions(+), 2 deletions(-) |
10 | delete mode 100644 tcg/TODO | ||
11 | 13 | ||
12 | diff --git a/tcg/TODO b/tcg/TODO | 14 | diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c |
13 | deleted file mode 100644 | 15 | index XXXXXXX..XXXXXXX 100644 |
14 | index XXXXXXX..XXXXXXX | 16 | --- a/accel/tcg/translate-all.c |
15 | --- a/tcg/TODO | 17 | +++ b/accel/tcg/translate-all.c |
16 | +++ /dev/null | 18 | @@ -XXX,XX +XXX,XX @@ TranslationBlock *tb_gen_code(CPUState *cpu, |
17 | @@ -XXX,XX +XXX,XX @@ | 19 | int i; |
18 | -- Add new instructions such as: clz, ctz, popcnt. | 20 | qemu_log(" data: [size=%d]\n", data_size); |
19 | - | 21 | for (i = 0; i < data_size / sizeof(tcg_target_ulong); i++) { |
20 | -- See if it is worth exporting mul2, mulu2, div2, divu2. | 22 | - qemu_log("0x%08" PRIxPTR ": .quad 0x%" TCG_PRIlx "\n", |
21 | - | 23 | - (uintptr_t)&rx_data_gen_ptr[i], rx_data_gen_ptr[i]); |
22 | -- Support of globals saved in fixed registers between TBs. | 24 | + if (sizeof(tcg_target_ulong) == 8) { |
23 | - | 25 | + qemu_log("0x%08" PRIxPTR ": .quad 0x%016" TCG_PRIlx "\n", |
24 | -Ideas: | 26 | + (uintptr_t)&rx_data_gen_ptr[i], rx_data_gen_ptr[i]); |
25 | - | 27 | + } else if (sizeof(tcg_target_ulong) == 4) { |
26 | -- Move the slow part of the qemu_ld/st ops after the end of the TB. | 28 | + qemu_log("0x%08" PRIxPTR ": .long 0x%08" TCG_PRIlx "\n", |
27 | - | 29 | + (uintptr_t)&rx_data_gen_ptr[i], rx_data_gen_ptr[i]); |
28 | -- Change exception syntax to get closer to QOP system (exception | 30 | + } else { |
29 | - parameters given with a specific instruction). | 31 | + qemu_build_not_reached(); |
30 | - | 32 | + } |
31 | -- Add float and vector support. | 33 | } |
34 | } | ||
35 | qemu_log("\n"); | ||
32 | -- | 36 | -- |
33 | 2.17.2 | 37 | 2.25.1 |
34 | 38 | ||
35 | 39 | diff view generated by jsdifflib |