On 4/7/23 20:36, Richard Henderson wrote:
Fix a crash writing to 't3', which is now a constant.
Instead, write the result of the remu to 'ret'.
Fixes: 7058ff5231a ("target/ppc: Avoid tcg_const_* in translate.c")
Reported-by: Nicholas Piggin
Signed-off-by: Richard Henderson
---
target/ppc/tra
The return is by reference, not in 4 integer registers.
This error resulted in
qemu-system-i386: tcg/mips/tcg-target.c.inc:140: \
tcg_target_call_oarg_reg: Assertion `slot >= 0 && slot <= 1' failed.
Fixes: 5427a9a7604 ("tcg: Add TCG_TARGET_CALL_{RET,ARG}_I128")
Signed-off-by: Richard Hende
On 4/7/23 21:28, Richard Henderson wrote:
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
These fields shouldn't be accessed when KVM is not available.
Signed-off-by: Philippe Mathieu-Daudé
---
RFC: The migration part is likely invalid...
kvmtimer_needed() is defined in target/riscv/machine.c a
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
These fields shouldn't be accessed when KVM is not available.
Signed-off-by: Philippe Mathieu-Daudé
---
RFC: The migration part is likely invalid...
kvmtimer_needed() is defined in target/riscv/machine.c as
static bool kvmtimer_needed(void *opa
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
These fields shouldn't be accessed when KVM is not available.
Signed-off-by: Philippe Mathieu-Daudé
---
target/arm/cpu.h | 2 ++
1 file changed, 2 insertions(+)
Reviewed-by: Richard Henderson
r~
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
We only need "sysemu/kvm.h" for kvm_enabled() and "cpu.h"
for the QOM type definitions (TYPE_ARM_CPU). Avoid including
the heavy "kvm_arm.h" header.
Signed-off-by: Philippe Mathieu-Daudé
---
target/arm/arm-qmp-cmds.c | 3 ++-
1 file changed, 2 in
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
"sysemu/kvm.h" is indirectly pulled in. Explicit its
inclusion to avoid when refactoring include/:
hw/arm/sbsa-ref.c:693:9: error: implicit declaration of function
'kvm_enabled' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if
On 4/7/23 21:23, Richard Henderson wrote:
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
"hw/core/cpu.h" defines 'first_cpu' as QTAILQ_FIRST_RCU(&cpus).
arm_gic_common_reset_irq_state() calls its second argument
'first_cpu', producing a build failure when "hw/core/cpu.h"
is included:
hw/int
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
"hw/core/cpu.h" defines 'first_cpu' as QTAILQ_FIRST_RCU(&cpus).
arm_gic_common_reset_irq_state() calls its second argument
'first_cpu', producing a build failure when "hw/core/cpu.h"
is included:
hw/intc/arm_gic_common.c:238:68: warning: omittin
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
"kvm_arm.h" contains external and internal prototype declarations.
Files under the hw/ directory should only access the KVM external
API.
In order to avoid machine / device models to include "kvm_arm.h"
simply to get the QOM GIC/ITS class name, un-i
On 4/7/23 17:01, pbart...@amazon.com wrote:
From: Paul Bartell
Revert changes to arm_cpu_get_phys_page_attrs_debug made in commit
4a35855682cebb89f9630b07aa9fd37c4e8c733b.
Commit 4a35855682 modifies the arm_cpu_get_phys_page_attrs_debug function
so that it calls get_phys_addr_with_struct rathe
On 4/6/23 00:46, Alex Bennée wrote:
If your aim is to examine JIT efficiency what is wrong with the current
"info jit" that you can access via the HMP? Also I'm wondering if its
time to remove the #ifdefs from CONFIG_PROFILER because I doubt the
extra data it collects is that expensive.
Richard,
The new(ish) macro produces a compile-time error instead
of a link-time error.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc
index e7930963fc..1df00b
Emit all 32-bit signed constants, which can be loaded in two insns.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 35 ---
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc
index
Repeated calls to a single helper are common -- especially
the ones for softmmu memory access. Prefer the constant pool
to longer sequences to increase sharing.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 16 +---
1 file changed, 13 insertions(+), 3 deletions(-)
During normal processing, the constant pool is accessible via
TCG_REG_TB. During the prologue, it is accessible via TCG_REG_T9.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.h | 1 +
tcg/mips/tcg-target.c.inc | 65 +--
2 files changed, 49 inse
These sequences are inexpensive to test. Maxing out at three insns
results in the same space as a load plus the constant pool entry.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 44 +++
1 file changed, 44 insertions(+)
diff --git a/tcg/mi
These addresses are often loaded by the qemu_ld/st slow path,
for loading the retaddr value.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 13 +
1 file changed, 13 insertions(+)
diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc
index e37aca5986..8
Since e03b56863d2b, which replaced HOST_WORDS_BIGENDIAN
with HOST_BIG_ENDIAN, there is no need to define a second
symbol which is [0,1].
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 88 ++-
1 file changed, 41 insertions(+), 47 deletions(-)
In tcg_out_qemu_ld/st, we already check for guest_base matching int16_t.
Mirror that when setting up TCG_GUEST_BASE_REG in the prologue.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tcg/mips/tcg-target.c.inc b/
No functional change; just moving the saved reserved regs to the end.
Reviewed-by: Philippe Mathieu-Daudé
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.h | 2 +-
tcg/mips/tcg-target.c.inc | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tcg/mips/tcg-target
Emit all constants that can be loaded in exactly one insn.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 26 --
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc
index c2f8d6550b..f0ae41
No functional change; just moving the saved reserved regs to the end.
Reviewed-by: Philippe Mathieu-Daudé
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tcg/mips/tcg-target.c.inc b/tcg/mips/tcg-target.c.inc
This vastly reduces the size of code generated for 64-bit addresses.
The code for exit_tb, for instance, where we load a (tagged) pointer
to the current TB, goes from
0x400aa9725c: li v0,64
0x400aa97260: dsll v0,v0,0x10
0x400aa97264: ori v0,v0,0xaa9
0x400aa97268: dsll v0,v0,
I've posted some of these before, perhaps a year or more ago, but
then failed to follow up and get them merged.
I don't think there are any real dependencies, but it has been
rebased upon today's load/store helpers patch set, so there might
be minor conflicts, therefore:
Based-on: 20230408024314.
Compare the address vs the tlb entry with sign-extended values.
This simplifies the page+alignment mask constant, and the
generation of the last byte address for the misaligned test.
Move the tlb addend load up, and the zero-extension down.
This frees up a register, which allows us to drop the 'b
Rather than zero-extend the guest address into a register,
use an add instruction which zero-extends the second input.
Signed-off-by: Richard Henderson
---
tcg/s390x/tcg-target.c.inc | 38 ++
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/tcg/
This is common code in most qemu_{ld,st} slow paths, extending the
input value for the store helper data argument or extending the
return value from the load helper.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 59
tcg/aarch64/tcg-targe
Adjust the softmmu tlb to use R0+R1, not any of the normally available
registers. Since we handle overlap betwen inputs and helper arguments,
we can allow any allocatable reg.
Signed-off-by: Richard Henderson
---
tcg/s390x/tcg-target-con-set.h | 2 --
tcg/s390x/tcg-target-con-str.h | 1 -
tcg
Centralize the logic to call the helper_stN_mmu functions.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 189 ++-
tcg/aarch64/tcg-target.c.inc | 24 ++--
tcg/arm/tcg-target.c.inc | 106 ++---
tcg/i386/tcg-target.c.inc
We will need a backend interface for type extension with sign.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 4
tcg/aarch64/tcg-target.c.inc | 9 ++---
tcg/arm/tcg-target.c.inc | 5 +
tcg/i386/tcg-targ
We need to set this in TCGLabelQemuLdst, so plumb this
all the way through from tcg_out_op.
Signed-off-by: Richard Henderson
---
tcg/arm/tcg-target.c.inc | 28 +++-
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-targ
We will need a backend interface for performing 32-bit zero-extend.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 4
tcg/aarch64/tcg-target.c.inc | 9 +++--
tcg/arm/tcg-target.c.inc | 5 +
tcg/i386/
This is common code in most qemu_{ld,st} slow paths, moving two
registers when there may be overlap between sources and destinations.
At present, this is only used by 32-bit hosts for 64-bit data,
but will shortly be used for more than that.
Signed-off-by: Richard Henderson
---
tcg/tcg.c
Since TCG_TYPE_I32 values are kept zero-extended in registers, via
omission of the REXW bit, we need not extend if the register matches.
This is already relied upon by qemu_{ld,st}.
Signed-off-by: Richard Henderson
---
tcg/i386/tcg-target.c.inc | 4 +++-
1 file changed, 3 insertions(+), 1 deleti
This evens out the interface to match tcg_out_qemu_ld,
and makes the argument to add_qemu_ldst_label less obscure.
Signed-off-by: Richard Henderson
---
tcg/aarch64/tcg-target.c.inc | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarc
We need to set this in TCGLabelQemuLdst, so plumb this
all the way through from tcg_out_op.
Signed-off-by: Richard Henderson
---
tcg/ppc/tcg-target.c.inc | 24 +---
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/tcg/ppc/tcg-target.c.inc b/tcg/ppc/tcg-target.c
We will need a backend interface for type extension with zero.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 4
tcg/aarch64/tcg-target.c.inc | 10 ++
tcg/arm/tcg-target.c.inc | 5 +
tcg/i386/tcg-
Since TCG_TYPE_I32 values are kept sign-extended in registers,
via ".w" instructions, we need not extend if the register matches.
This is already relied upon by comparisons.
Signed-off-by: Richard Henderson
---
tcg/loongarch64/tcg-target.c.inc | 4 +++-
1 file changed, 3 insertions(+), 1 deletio
The softmmu tlb uses TCG_REG_TMP[0-2], not any of the normally available
registers. Now that we handle overlap betwen inputs and helper arguments,
we can allow any allocatable reg.
Signed-off-by: Richard Henderson
---
tcg/loongarch64/tcg-target-con-set.h | 2 --
tcg/loongarch64/tcg-target-con-
We will need a backend interface for type truncation. For those backends
that did not enable TCG_TARGET_HAS_extrl_i64_i32, use tcg_out_mov.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 4
tcg/aarch64/tcg-target.c.inc
Since TCG_TYPE_I32 values are kept sign-extended in registers,
via "w" instructions, we need not extend if the register matches.
This is already relied upon by comparisons.
Signed-off-by: Richard Henderson
---
tcg/riscv/tcg-target.c.inc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
d
Signed-off-by: Richard Henderson
---
tcg/tcg-ldst.c.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/tcg/tcg-ldst.c.inc b/tcg/tcg-ldst.c.inc
index 6c6848d034..403cbb0f06 100644
--- a/tcg/tcg-ldst.c.inc
+++ b/tcg/tcg-ldst.c.inc
@@ -72,6 +72,7 @@ static inline TCGLabelQemuLdst *new_ldst_labe
We need to set this in TCGLabelQemuLdst, so plumb this
all the way through from tcg_out_op.
Signed-off-by: Richard Henderson
---
tcg/sparc64/tcg-target.c.inc | 15 +++
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.
The softmmu tlb uses TCG_REG_TMP[0-2], not any of the normally available
registers. Now that we handle overlap betwen inputs and helper arguments,
we can allow any allocatable reg.
Signed-off-by: Richard Henderson
---
tcg/riscv/tcg-target-con-set.h | 2 --
tcg/riscv/tcg-target-con-str.h | 1 -
There are several places where we already convert back from
bool to type. Clean things up by using type throughout.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 56 +++
1 file changed, 27 insertions(+), 29 deletions(-)
diff --git a/tcg/mi
In tcg_canonicalize_memop, we remove MO_SIGN from MO_32 operations
with TCG_TYPE_I32. Thus this is never set. We already have an
identical test just above which does not include is_64
Signed-off-by: Richard Henderson
---
tcg/sparc64/tcg-target.c.inc | 2 +-
1 file changed, 1 insertion(+), 1 de
The new name is slightly more descritive as "data type",
where "extend", despite the c type, sounds like a bool.
Signed-off-by: Richard Henderson
---
tcg/aarch64/tcg-target.c.inc | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aar
There are several changes to the load/store helpers coming, and
making sure that those changes are properly reflected across all
of the backends was harrowing.
I have gone back and restarted by hoisting the code out of the
backends and into tcg.c. We already have all of the parameters
for the hos
We will need a backend interface for performing 8-bit zero-extend.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 5 +
tcg/aarch64/tcg-target.c.inc | 11 +++
tcg/arm/tcg-target.c.inc | 12 +---
The softmmu tlb uses TCG_REG_{TMP1,TMP2,R0}, not any of the normally
available registers. Now that we handle overlap betwen inputs and
helper arguments, we can allow any allocatable reg.
Signed-off-by: Richard Henderson
---
tcg/ppc/tcg-target-con-set.h | 11 ---
tcg/ppc/tcg-target-con-s
These constraints have not been used for quite some time.
Fixes: 77b73de67632 ("Use rem/div[u]_i32 drop div[u]2_i32")
Signed-off-by: Richard Henderson
---
tcg/ppc/tcg-target-con-str.h | 4
1 file changed, 4 deletions(-)
diff --git a/tcg/ppc/tcg-target-con-str.h b/tcg/ppc/tcg-target-con-str
The softmmu tlb uses TCG_REG_TMP[0-3], not any of the normally available
registers. Now that we handle overlap betwen inputs and helper arguments,
we can allow any allocatable reg.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target-con-set.h | 13 +
tcg/mips/tcg-target-con-str
The port currently does not support "oversize" guests, which
means riscv32 can only target 32-bit guests. We will soon be
building TCG once for all guests. This implies that we can
only support riscv64.
Since all Linux distributions target riscv64 not riscv32,
this is not much of a restriction a
Allocate TCG_REG_TMP2. Use R0, TMP1, TMP2 instead of any of
the normally allocated registers for the tlb load.
Signed-off-by: Richard Henderson
---
tcg/ppc/tcg-target.c.inc | 83 +++-
1 file changed, 48 insertions(+), 35 deletions(-)
diff --git a/tcg/ppc/tcg
Since TCG_TYPE_I32 values are kept sign-extended in registers, we need not
extend if the register matches. This is already relied upon by comparisons.
Signed-off-by: Richard Henderson
---
tcg/mips/tcg-target.c.inc | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tcg/mips/t
There are several places where we already convert back from
bool to type. Clean things up by using type throughout.
Signed-off-by: Richard Henderson
---
tcg/i386/tcg-target.c.inc | 35 +--
1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/tcg/i386/t
We will want a backend interface for register swapping.
This is only properly defined for x86; all others get a
stub version that always indicates failure.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 2 ++
tcg/aarch64/tcg-target.c.inc | 5 +
tcg/arm/tcg-target
Now that the host is always 64-bit, the address and
data operands are always one operand each. In addition,
change to using TCGType to describe the data operand.
Signed-off-by: Richard Henderson
---
tcg/riscv/tcg-target.c.inc | 47 +++---
1 file changed, 18 inser
Signed-off-by: Richard Henderson
---
tcg/tcg.c | 4 +---
tcg/i386/tcg-target.c.inc | 8 +++-
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index bb52bc060b..100f81edb2 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1174,9 +1174,7 @@ static TC
We will need a backend interface for performing 32-bit sign-extend.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 4
tcg/aarch64/tcg-target.c.inc | 9 +++--
tcg/arm/tcg-target.c.inc | 5 +
tcg/i386/
We will need a backend interface for performing 16-bit zero-extend.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 5 +
tcg/aarch64/tcg-target.c.inc | 13 -
tcg/arm/tcg-target.c.inc | 17 ++-
This will shortly be used by sparc64 without also using
TCG_TARGET_NEED_LDST_LABELS.
Signed-off-by: Richard Henderson
---
tcg/tcg.c | 13 +
tcg/tcg-ldst.c.inc | 14 --
2 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 1c
We will need a backend interface for performing 16-bit sign-extend.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 7 +++
tcg/aarch64/tcg-target.c.inc | 13 -
tcg/arm/tcg-target.c.inc | 10 -
Signed-off-by: Richard Henderson
---
include/tcg/tcg.h| 6 --
target/i386/tcg/translate.c | 20 ++--
target/s390x/tcg/translate.c | 4 ++--
tcg/optimize.c | 10 --
tcg/tcg.c| 8
tcg/aarch64/tcg-target.c.inc |
Centralize the logic to call the helper_ldN_mmu functions.
This loses out slightly on mips by not filling the delay slot,
but the result is more maintainable.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 187 +++
tcg/aarch64/tcg-target.c.inc
We need to set this in TCGLabelQemuLdst, so plumb this
all the way through from tcg_out_op.
Signed-off-by: Richard Henderson
---
tcg/s390x/tcg-target.c.inc | 22 ++
1 file changed, 14 insertions(+), 8 deletions(-)
diff --git a/tcg/s390x/tcg-target.c.inc b/tcg/s390x/tcg-targe
We can arrive here on _WIN64 because Int128 is passed by reference.
Change the assert to check that the immediate is in range,
instead of attempting to check the host ABI.
Fixes: 6a6d772e30d ("tcg: Introduce tcg_out_addi_ptr")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1581
Signed-off
We will need a backend interface for performing 8-bit sign-extend.
Use it in tcg_reg_alloc_op in the meantime.
Signed-off-by: Richard Henderson
---
tcg/tcg.c| 21 -
tcg/aarch64/tcg-target.c.inc | 11 +++
tcg/arm/tcg-target.c.inc | 1
On 2023/4/8 03:25, Daniel Henrique Barboza wrote:
On 4/7/23 00:34, liweiwei wrote:
On 2023/4/7 09:14, liweiwei wrote:
On 2023/4/7 04:22, Daniel Henrique Barboza wrote:
Hi,
This patch is going to break the sifive_u boot if I rebase
"[PATCH v6 0/9] target/riscv: rework CPU extensions val
From: Carlos Santos
It is not useful when configuring with --enable-trace-backends=nop.
Signed-off-by: Carlos Santos
---
Changes v1->v2:
Install based on chosen trace backend, not on chosen emulators.
Changes v2->v3:
Add missing comma
Changes v3->v4:
Fix array comparison:
get_option('
The corruption occurs when a BAT entry aligned to 4096 bytes is changed.
Specifically, the corruption occurs during the creation of the LOG Data
Descriptor. The incorrect behavior involves copying 4088 bytes from the
original 4096 bytes aligned offset to `tmp[8..4096]` and then copying
the new val
From: Paul Bartell
Revert changes to arm_cpu_get_phys_page_attrs_debug made in commit
4a35855682cebb89f9630b07aa9fd37c4e8c733b.
Commit 4a35855682 modifies the arm_cpu_get_phys_page_attrs_debug function
so that it calls get_phys_addr_with_struct rather than get_phys_addr, which
leads to a variety
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
Avoid when calling kvm_direct_msi_enabled() from
arm_gicv3_its_common.c the next commit:
Undefined symbols for architecture arm64:
"_kvm_direct_msi_allowed", referenced from:
_its_class_name in hw_intc_arm_gicv3_its_common.c.o
ld
On 4/5/23 09:04, Philippe Mathieu-Daudé wrote:
All types used are forward-declared in "qemu/typedefs.h".
Signed-off-by: Philippe Mathieu-Daudé
---
include/sysemu/kvm.h | 3 ---
1 file changed, 3 deletions(-)
Reviewed-by: Richard Henderson
r~
On 4/5/23 09:13, Philippe Mathieu-Daudé wrote:
+softmmu_ss.add_all(when: ['CONFIG_SOFTMMU'], if_true: sysemu_stubs_ss)
This when is redundant.
You can drop sysemu_stubs_ss and add each stub file directly to softmmu_ss.
r~
On 4/5/23 09:13, Philippe Mathieu-Daudé wrote:
kvm_flush_coalesced_mmio_buffer() is only called from
qemu_flush_coalesced_mmio_buffer() where it is protected
by a kvm_enabled() check. When KVM is not available, the
call is elided, there is no need for a stub definition.
Reviewed-by: Richard Hen
From: Carlos Santos
It is not useful when configuring with --enable-trace-backends=nop.
Signed-off-by: Carlos Santos
---
Changes v1->v2:
Install based on chosen trace backend, not on chosen emulators.
Changes v2->v3:
Add missing comma
---
trace/meson.build | 2 +-
1 file changed, 1 inserti
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
We want all accelerators to share the same opaque pointer in
CPUState.
Rename the 'hvf_vcpu_state' structure as 'AccelvCPUState'.
Use the generic 'accel' field of CPUState instead of 'hvf'.
Replace g_malloc0() by g_new0() for readability.
Signed-
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
No need for this helper to access the CPUState::accel field.
Signed-off-by: Philippe Mathieu-Daudé
---
target/i386/whpx/whpx-all.c | 29 ++---
1 file changed, 10 insertions(+), 19 deletions(-)
Reviewed-by: Richard Hender
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
We want all accelerators to share the same opaque pointer in
CPUState. Rename WHPX 'whpx_vcpu' as 'AccelvCPUState'.
Signed-off-by: Philippe Mathieu-Daudé
---
target/i386/whpx/whpx-all.c | 30 +++---
1 file changed, 15 ins
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
No need for this helper to access the CPUState::accel field.
Signed-off-by: Philippe Mathieu-Daudé
---
target/i386/nvmm/nvmm-all.c | 28 +++-
1 file changed, 11 insertions(+), 17 deletions(-)
Reviewed-by: Richard Henders
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
-struct qemu_vcpu *qcpu = get_qemu_vcpu(cpu);
+struct AccelvCPUState *qcpu = get_qemu_vcpu(cpu);
With the typedef in hw/core/cpu.h, you can drop the 'struct' at the same time.
Otherwise,
Reviewed-by: Richard Henderson
-qcpu = g_try_
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
+struct AccelvCPUState;
Missing typedef?
r~
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
hThread variable is only used by the HAX accelerator,
so move it to the accelerator specific context.
Signed-off-by: Philippe Mathieu-Daudé
---
include/hw/core/cpu.h | 1 -
target/i386/hax/hax-i386.h | 3 +++
target/i386/hax/hax-a
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
We want all accelerators to share the same opaque pointer in
CPUState. Start with the HAX context, renaming its forward
declarated structure 'hax_vcpu_state' as 'AccelvCPUState'.
Signed-off-by: Philippe Mathieu-Daudé
---
include/hw/core/cpu.h
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
All accelerators will share a single opaque context
in CPUState. Start by renaming 'hax_vcpu' as 'accelCPUState'.
Pasto in 'accel' here.
Reviewed-by: Richard Henderson
r~
On 4/5/23 03:17, Philippe Mathieu-Daudé wrote:
On Windows hosts, cpu->hThread is assigned but never accessed:
remove it.
Signed-off-by: Philippe Mathieu-Daudé
---
accel/tcg/tcg-accel-ops-mttcg.c | 4
accel/tcg/tcg-accel-ops-rr.c | 3 ---
target/i386/whpx/whpx-accel-ops.c | 3 ---
On 4/5/23 03:17, Philippe Mathieu-Daudé wrote:
These headers are meant to be include by any file to check
the availability of accelerators, thus are not accelerator
specific.
Signed-off-by: Philippe Mathieu-Daudé
---
include/sysemu/hax.h | 2 ++
include/sysemu/kvm.h | 2 ++
include/sysemu/
On 4/5/23 03:18, Philippe Mathieu-Daudé wrote:
hThread is only used on the error path in hax_kick_vcpu_thread().
Fixes: b0cb0a66d6 ("Plumb the HAXM-based hardware acceleration support")
Signed-off-by: Philippe Mathieu-Daudé
---
target/i386/hax/hax-all.c | 3 +++
1 file changed, 3 insertions(+
Mon, 20 Mar 2023 10:38:46 +0100 Gerd Hoffmann :
> Remove Makefile.edk2 and the edk2*.sh scripts and replace them
> with a python script (which already handles fedora rpm builds)
> and a config file for it.
This breaks 'make roms efirom' (in case this happens to be a valid make target).
Olaf
pg
Currently, idef-parser skips all floating point instructions. However,
there are some floating point instructions that can be handled.
The following instructions are now parsed
F2_sfimm_p
F2_sfimm_n
F2_dfimm_p
F2_dfimm_n
F2_dfmpyll
F2_dfmpylh
To make these instructions wo
From: "Lauren N. Liberda"
qemu forks on github are typically the way of work on changes
to be upstreamed later, such as support for new devices. currently,
the workflow prevents any external contributors from submitting
code changes, and blindly points them to upstream instead.
Signed-off-by: La
The slot variable in helpers was only passed to log_reg_write function
where the argument is unused.
- Remove declaration from generated helper functions
- Remove slot argument from log_reg_write
Signed-off-by: Taylor Simpson
---
target/hexagon/macros.h| 2 +-
target/hexagon/op_helpe
Il ven 7 apr 2023, 22:04 Eric Blake ha scritto:
> On Fri, Apr 07, 2023 at 05:33:03PM +0200, Paolo Bonzini wrote:
> > The introduction of the graph lock is causing blk_get_geometry, a hot
> function
> > used in the I/O path, to create a coroutine. However, the only part
> that really
> > needs to
On Fri, Apr 07, 2023 at 05:33:03PM +0200, Paolo Bonzini wrote:
> The introduction of the graph lock is causing blk_get_geometry, a hot function
> used in the I/O path, to create a coroutine. However, the only part that
> really
> needs to run in coroutine context is the call to
> bdrv_co_refresh
On Fri, Apr 07, 2023 at 05:33:02PM +0200, Paolo Bonzini wrote:
> All callers of blk_co_nb_sectors (and blk_nb_sectors) are able to
> handle a non-inserted CD-ROM as a zero-length file, they do not need
> to raise an error.
>
> Not using blk_co_is_available() aligns the function with
> blk_co_get_g
On Fri, Apr 07, 2023 at 05:33:01PM +0200, Paolo Bonzini wrote:
> bdrv_co_get_geometry is only used in blk_co_get_geometry. Inline it in
> there, to reduce the number of wrappers for bs->total_sectors.
>
> Signed-off-by: Paolo Bonzini
> ---
> block.c | 10 --
> block/blo
On Fri, Apr 07, 2023 at 05:33:00PM +0200, Paolo Bonzini wrote:
> Uses of blk_nb_sectors must check whether the result is negative.
> Otherwise, underflow can happen. Fortunately, alloc_aio_bitmap()
> and bmds_aio_inflight() both have an alternative way to retrieve the
> number of sectors in the fi
On Fri, Apr 07, 2023 at 05:32:59PM +0200, Paolo Bonzini wrote:
> Fill in the field in BlockLimits directly for host devices, and
> copy it from there for the raw format.
>
> Signed-off-by: Paolo Bonzini
> ---
> block/file-posix.c | 12
> block/file-win32.c
1 - 100 of 165 matches
Mail list logo