Richard Henderson
8be545ba5a
include/system: Move exec/memory.h to system/memory.h
...
Convert the existing includes with
sed -i ,exec/memory.h,system/memory.h,g
Move the include within cpu-all.h into a !CONFIG_USER_ONLY block.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-23 14:08:21 -07:00
Philippe Mathieu-Daudé
4c5c410ceb
disas: Prefer cached CpuClass over CPU_GET_CLASS() macro
...
CpuState caches its CPUClass since commit 6fbdff8706
("cpu: cache CPUClass in CPUState for hot code paths"),
use it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20250122093028.52416-8-philmd@linaro.org >
2025-03-09 17:00:47 +01:00
Philippe Mathieu-Daudé
ae24e13a9f
disas: Remove target_words_bigendian() call in initialize_debug_target()
...
All CPUClass implementating disas_set_info() must set the
disassemble_info::endian value.
Ensure that by setting %endian to BFD_ENDIAN_UNKNOWN before
calling the CPUClass::disas_set_info() handler, then asserting
%endian is not BFD_ENDIAN_UNKNOWN after the call.
This allows removing the target_words_bigendian() call in disas/.
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20250210212931.62401-11-philmd@linaro.org >
2025-03-06 15:46:18 +01:00
Rob Bradford and Alistair Francis
81819038d7
disas/riscv: Add missing Sdtrig CSRs
...
This reflects the latest frozen version of the RISC-V Debug
specification (1.0.0-rc4) which includes the Sdtrig extension.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20250206153410.236636-3-rbradford@rivosinc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2025-03-04 15:42:54 +10:00
Rob Bradford and Alistair Francis
d30db4df51
disas/riscv: Fix minor whitespace issues
...
Some extra spaces made into into the RISC-V opcode data table.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20250206153410.236636-2-rbradford@rivosinc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2025-03-04 15:42:54 +10:00
Helge Deller
bf60e2a72a
disas/hppa: implement mfdiag/mtdiag disassembly
...
The various PA-RISC CPUs implement different CPU-specific diag
instructions (mfdiag, mtdiag, mfcpu, mtcpu, ...) to access CPU-internal
diagnose/configuration registers, e.g. for cache control, managing space
register hashing, control front panel LEDs and read status of the
hardware reset button.
Those instructions are mostly undocumented, but are used by ODE, HP-UX
and Linux.
This patch adds some neccessary instructions for PCXL and PCXU CPUs.
Signed-off-by: Helge Deller <deller@gmx.de >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
2025-01-30 13:37:20 +01:00
LIU Zhiwei and Richard Henderson
f65f3ebfad
disas/riscv: Guard dec->cfg dereference for host disassemble
...
For riscv host, it will set dec->cfg to zero. Thus we shuld guard
the dec->cfg deference for riscv host disassemble.
And in general, we should only use dec->cfg for target in three cases:
1) For not incompatible encodings, such as zcmp/zcmt/zfinx.
2) For maybe-ops encodings, they are better to be disassembled to
the "real" extensions, such as zicfiss. The guard of dec->zimop
and dec->zcmop is for comment and avoid check for every extension
that encoded in maybe-ops area.
3) For custom encodings, we have to use dec->cfg to disassemble
custom encodings using the same encoding area.
Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20241206032411.52528-1-zhiwei_liu@linux.alibaba.com >
2025-01-16 20:57:16 -08:00
Deepak Gupta and Alistair Francis
e75f945123
disas/riscv: enable disassembly for compressed sspush/sspopchk
...
sspush and sspopchk have equivalent compressed encoding taken from zcmop.
cmop.1 is sspush x1 while cmop.5 is sspopchk x5. Due to unusual encoding
for both rs1 and rs2 from space bitfield, this required a new codec.
Signed-off-by: Deepak Gupta <debug@rivosinc.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20241008225010.1861630-20-debug@rivosinc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-10-31 13:51:24 +10:00
Deepak Gupta and Alistair Francis
b9080d0765
disas/riscv: enable disassembly for zicfiss instructions
...
Enable disassembly for sspush, sspopchk, ssrdp & ssamoswap.
Disasembly is only enabled if zimop and zicfiss ext is set to true.
Signed-off-by: Deepak Gupta <debug@rivosinc.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20241008225010.1861630-19-debug@rivosinc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-10-31 13:51:17 +10:00
Deepak Gupta and Alistair Francis
5e761bd613
disas/riscv: enable lpad disassembly
...
Signed-off-by: Deepak Gupta <debug@rivosinc.com >
Co-developed-by: Jim Shu <jim.shu@sifive.com >
Co-developed-by: Andy Chiu <andy.chiu@sifive.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20241008225010.1861630-9-debug@rivosinc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-10-30 11:22:08 +10:00
Richard Henderson
be46e0bf14
disas/riscv: Fix vsetivli disassembly
...
The first immediate field is unsigned, whereas operand_vimm
extracts a signed value. There is no need to mask the result
with 'u'; just print the immediate with 'i'.
Fixes: 07f4964d17 ("disas/riscv.c: rvv: Add disas support for vector instructions")
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-10-22 11:57:25 -07:00
Philippe Mathieu-Daudé and Thomas Huth
c700d06819
disas: Remove CRIS disassembler
...
We just removed the CRIS target, the disassembler is now dead code.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-ID: <20240904143603.52934-15-philmd@linaro.org >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2024-10-07 11:33:20 +02:00
Balaji Ravikumar and Alistair Francis
4d46d84ea7
disas/riscv: Add decode for Zawrs extension
...
Add disassembly support for these instructions from Zawrs:
* wrs.sto
* wrs.nto
Signed-off-by: Balaji Ravikumar <bravikumar@rivosinc.com >
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20240705165316.127494-1-rbradford@rivosinc.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-07-18 12:08:44 +10:00
LIU Zhiwei and Alistair Francis
ae4bdcef6f
disas/riscv: Support zabha disassemble
...
Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-ID: <20240709113652.1239-12-zhiwei_liu@linux.alibaba.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-07-18 12:08:41 +10:00
LIU Zhiwei and Alistair Francis
67e98ebad0
disas/riscv: Support zcmop disassemble
...
Although in QEMU disassemble, we usually lift compressed instruction
to an normal format when display the instruction name. For C.MOP.n,
it is more reasonable to directly display its compressed name, because
its behavior can be redefined by later extension.
Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Deepak Gupta <debug@rivosinc.com >
Message-ID: <20240709113652.1239-5-zhiwei_liu@linux.alibaba.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-07-18 12:00:42 +10:00
LIU Zhiwei and Alistair Francis
d98883d127
disas/riscv: Support zimop disassemble
...
Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Deepak Gupta <debug@rivosinc.com >
Message-ID: <20240709113652.1239-3-zhiwei_liu@linux.alibaba.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2024-07-18 12:00:42 +10:00
Richard Henderson
b89fb575fd
disas/riscv: Use GString in format_inst
...
Allocate and fill a GString instead of snprintf and
appending to a fixed sized buffer.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-22-richard.henderson@linaro.org >
2024-06-05 12:29:54 -07:00
Richard Henderson
a45e0b5290
disas/microblaze: Split get_field_special
...
Extract the raw special index and a function to lookup a name.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-21-richard.henderson@linaro.org >
2024-06-05 12:29:54 -07:00
Richard Henderson
b35ab133eb
disas/microblaze: Print registers directly with PRIrfsl
...
Use a printf format instead of sprintf into a buffer.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-20-richard.henderson@linaro.org >
2024-06-05 12:29:54 -07:00
Richard Henderson
c521e0a3e1
disas/microblaze: Print immediates directly with PRIimm
...
Use a printf format instead of sprintf into a buffer.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-19-richard.henderson@linaro.org >
2024-06-05 12:29:54 -07:00
Richard Henderson
b0063d831b
disas/microblaze: Print registers directly with PRIreg
...
Use a printf format instead of sprintf into a buffer.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-18-richard.henderson@linaro.org >
2024-06-05 12:29:54 -07:00
Richard Henderson
de66f9f7ab
disas/microblaze: Merge op->name output into each fprintf
...
In the common case, issue one single fprintf.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-17-richard.henderson@linaro.org >
2024-06-05 12:29:54 -07:00
Richard Henderson
c3c6fed646
disas/microblaze: Re-indent print_insn_microblaze
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-16-richard.henderson@linaro.org >
2024-06-05 12:29:49 -07:00
Richard Henderson
58e5632c70
disas/microblaze: Split out print_immval_addr
...
Unify the code blocks that try to print a symbolic address.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-Id: <20240412073346.458116-15-richard.henderson@linaro.org >
2024-06-05 12:29:49 -07:00
Richard Henderson
d16cab541a
Merge tag 'hw-misc-accel-20240604' of https://github.com/philmd/qemu into staging
...
Misc HW & accelerators patch queue
- Use async exit in debugexit model (Thomas)
- Fixed bug reading xlnx_dpdma descriptor (Peter)
- Initialise plugin state before vCPU/thread creation (Alex)
- Few sprintf() calls removed (Richard & Philippe)
- Few deprecated QMP events removed (Philippe)
- Housekeeping in Xen (Edgar & Philippe)
- Split USB HID/HUB & update MAINTAINERS (Gerd)
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmZe5FMACgkQ4+MsLN6t
# wN5QghAAl1j5++wKcJaWoribnhxYctcBPhg3eEAwg2qVRbx5tz7HwYw8jYp+qB47
# abAtE3WOUg+Z+NaBi0bTj8Ns0wrBTZy0toJrQb+k5M9CzJJIFSURcFV2J40ORld8
# VHNKmzNN+ZscxAW3fSFruJlGLaskwB0bk9VF0cYSip2Y+xjbPlJZ8dlffX/HAvwB
# Ul4gJW04FT3k6KoeJASNiAMm7mPW9iP4kY7rKz+j+NWydAfl8yPzxFwW6J6U2npi
# Hvmy1519W74cftZSqxkBETtbw1YVKyT6QEA9HjJOjc05E6UYnxoR13taEzLNaDHA
# B7Xhp6IUYZGRD1bt85WZCP5t5yUINLgmzJU2OQnv9dfU1HdSkk0FQiBr0Iif3tCI
# /2cQumkGI4etXX77oVIwkioo0ZTvEggDNsN1eKHIY7yIE5etqXduPwnTfwHFI3lv
# Nj18MGF0cftbYDEbUwNUnN5U6+msW3Si6hQaUxpUWXy7Idkl9pBiWjv1OpBg9PqX
# YIuw9/USs7i8yZkh0/q8UcZxdzB3LF+LxjVVVoTVD6t+KbRSkJSOJm7hfqCKuXbC
# lEmtLt+aH/pdZ2Banug1Ayen2L7s0czRHQWC++DfNQve1xEUkSFp5VE0mxsr+6Rp
# 18/dSGo++Nh52jUt2QFEv9LyAAQCKxg72I9DW9sB7uC004+ub84=
# =xcID
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 04 Jun 2024 04:54:27 AM CDT
# gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org >" [full]
* tag 'hw-misc-accel-20240604' of https://github.com/philmd/qemu : (32 commits)
usb: add config options for the hub and hid devices
qga: Remove deprecated 'blacklist' argument / config key
trace: Remove deprecated 'vcpu' field from QMP trace events
hw/acpi: Remove the deprecated QAPI MEM_UNPLUG_ERROR event
hw/dma/xlnx_dpdma: Read descriptor into buffer, not into pointer-to-buffer
hw/misc/debugexit: use runstate API instead of plain exit()
hw/xen: Register framebuffer backend via xen_backend_init()
hw/xen: Make XenDevOps structures const
hw/xen: Constify xenstore_be::XenDevOps
hw/xen: Constify XenLegacyDevice::XenDevOps
physmem: Replace check for RAMBlock offset 0 with xen_mr_is_memory
physmem: Always pass offset + addr to xen_map_cache
xen: Add xen_mr_is_memory()
core/cpu-common: initialise plugin state before thread creation
plugins: remove special casing for cpu->realized
cpu-target: don't set cpu->thread_id to bogus value
cpu: move Qemu[Thread|Cond] setup into common code
hw/core: expand on the alignment of CPUState
accel/kvm: Fix two lines with hard-coded tabs
accel/tcg: Move common declarations to 'internal-common.h'
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-06-04 14:53:05 -05:00