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