Philippe Mathieu-Daudé
74781c0888
exec/cpu: Extract page-protection definitions to page-protection.h
...
Extract page-protection definitions from "exec/cpu-all.h"
to "exec/page-protection.h".
The list of files requiring the new header was generated
using:
$ git grep -wE \
'PAGE_(READ|WRITE|EXEC|RWX|VALID|ANON|RESERVED|TARGET_.|PASSTHROUGH)'
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Acked-by: Nicholas Piggin <npiggin@gmail.com >
Acked-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240427155714.53669-3-philmd@linaro.org >
2024-05-06 11:17:15 +02:00
Philippe Mathieu-Daudé
7dd1259b37
exec/cpu: Remove duplicated PAGE_PASSTHROUGH definition
...
Missed in commit 58771921af ("include/exec: Move PAGE_* macros
to common header"), PAGE_PASSTHROUGH ended being defined twice.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240427155714.53669-8-philmd@linaro.org >
2024-05-06 11:17:15 +02:00
Philippe Mathieu-Daudé
a4f06b1a05
exec/cpu: Remove obsolete PAGE_RESERVED definition
...
We stopped using the PAGE_RESERVED definition in commit
50d25c8aec ("accel/tcg: Drop PAGE_RESERVED for CONFIG_BSD").
This completes commit 2e9a5713f0 ("Remove PAGE_RESERVED").
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240427155714.53669-7-philmd@linaro.org >
2024-05-06 11:17:15 +02:00
BALATON Zoltan
86b7c55182
exec/cpu: Rename PAGE_BITS macro to PAGE_RWX
...
This macro can be used to abbreviate PAGE_READ | PAGE_WRITE | PAGE_EXEC
for which PAGE_RWX is a better name and renaming it also shows it is
not related to TARGET_PAGE_BITS.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-ID: <20240505121008.44A0D4E602D@zero.eik.bme.hu >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
2024-05-06 11:17:15 +02:00
Philippe Mathieu-Daudé
1072f927f0
exec/cpu: Indent TARGET_PAGE_foo definitions
...
The TARGET_PAGE_foo definitions are defined with multiple
level of #ifdef'ry. Indent it a bit for clarity.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240427155714.53669-6-philmd@linaro.org >
2024-05-06 11:17:14 +02:00
Taylor Simpson
a469666149
Hexagon (target/hexagon) Remove hex_common.read_attribs_file
...
The attribinfo data structure is not used
Adjust the command-line arguments to the python scripts
Add hex_common.read_common_files for TCG/helper generation scripts
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240307032327.4799-10-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
582c59efae
Hexagon (target/hexagon) Remove gen_shortcode.py
...
This data structure is not used
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240307032327.4799-9-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
b45c1b5124
Hexagon (target/hexagon) Remove gen_op_regs.py
...
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-8-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
09a7e7db0f
Hexagon (target/hexagon) Remove uses of op_regs_generated.h.inc
...
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-7-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
b887b6b71c
Hexagon (tests/tcg/hexagon) Test HVX .new read from high half of pair
...
Make sure the decoding of HVX .new is correctly handling this case
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-6-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
4614b8f36a
Hexagon (target/hexagon) Mark has_pred_dest in trans functions
...
Check that the value matches opcode_wregs
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-5-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
325a64af06
Hexagon (target/hexagon) Mark dest_idx in trans functions
...
Check that the value matches opcode_reginfo/opcode_wregs
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-4-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
9196381993
Hexagon (target/hexagon) Mark new_read_idx in trans functions
...
Check that the value matches opcode_reginfo
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-3-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
2720bd1dbd
Hexagon (target/hexagon) Add is_old/is_new to Register class
...
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240307032327.4799-2-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
2f0a771ddc
Hexagon (target/hexagon) Only pass env to generated helper when needed
...
Currently, we pass env to every generated helper. When the semantics of
the instruction only depend on the arguments, this is unnecessary and
adds extra overhead to the helper call.
We add the TCG_CALL_NO_RWG_SE flag to any non-HVX helpers that don't get
the ptr to env.
The A2_nop and SA1_setin1 instructions end up with no arguments. This
results in a "old-style function definition" error from the compiler, so
we write overrides for them.
With this change, the number of helpers with env argument is
idef-parser enabled: 329 total, 23 with env
idef-parser disabled: 1543 total, 550 with env
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Anton Johansson <anjo@rev.ng >
Tested-by: Anton Johansson <anjo@rev.ng >
Message-Id: <20240214042726.19290-4-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
f7be65fbbf
Hexagon (target/hexagon) Pass SP explicitly to helpers that need it
...
Rather than reading SP from the env, pass it explicitly
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Anton Johansson <anjo@rev.ng >
Tested-by: Anton Johansson <anjo@rev.ng >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240214042726.19290-3-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
850d06225b
Hexagon (target/hexagon) Pass P0 explicitly to helpers that need it
...
Rather than reading P0 from the env, pass it explicitly
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Anton Johansson <anjo@rev.ng >
Tested-by: Anton Johansson <anjo@rev.ng >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240214042726.19290-2-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
763d2ce7c4
Hexagon (target/hexagon) Enable more short-circuit packets (HVX)
...
Look for read-after-write instead of overlap of reads and writes
HVX instructions with helpers have pass-by-reference semantics, so
we check for overlaps of reads and writes within the same instruction.
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240201103340.119081-4-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
bd983f68ac
Hexagon (target/hexagon) Enable more short-circuit packets (scalar core)
...
Look for read-after-write instead of overlap of reads and writes
Here is an example with overalp but no read-after-write:
0x000200fc: 0x38103876 { R0 = add(R0,R1); R6 = add(R6,R7) }
BEFORE:
---- 00000000000200fc
mov_i32 loc2,$0x0
mov_i32 loc2,r0
add_i32 loc3,loc2,r1
mov_i32 loc2,loc3
mov_i32 loc4,$0x0
mov_i32 loc4,r6
add_i32 loc5,loc4,r7
mov_i32 loc4,loc5
mov_i32 r0,loc2
mov_i32 r6,loc4
AFTER:
---- 00000000000200fc
add_i32 loc2,r0,r1
mov_i32 r0,loc2
add_i32 loc3,r6,r7
mov_i32 r6,loc3
We can also short-circuit packets with .new values by reading from the
real destination instead of the temporary.
0x00020100: 0x78005ff3 { R19 = #0xff
0x00020104: 0x2002e204 if (cmp.eq(N19.new,R2)) jump:t PC+8 }
BEFORE:
---- 0000000000020100
mov_i32 pc,$0x20108
mov_i32 loc8,$0x0
mov_i32 loc8,$0xff
setcond_i32 loc10,loc8,r2,eq
mov_i32 loc6,loc10
mov_i32 r19,loc8
add_i32 pkt_cnt,pkt_cnt,$0x2
add_i32 insn_cnt,insn_cnt,$0x4
brcond_i32 loc6,$0x0,eq,$L1
goto_tb $0x0
mov_i32 pc,$0x20108
exit_tb $0x7fbb54000040
set_label $L1
goto_tb $0x1
exit_tb $0x7fbb54000041
set_label $L0
exit_tb $0x7fbb54000043
AFTER:
---- 0000000000020100
mov_i32 pc,$0x20108
mov_i32 r19,$0xff
setcond_i32 loc7,r19,r2,eq
mov_i32 loc4,loc7
add_i32 pkt_cnt,pkt_cnt,$0x2
add_i32 insn_cnt,insn_cnt,$0x4
brcond_i32 loc4,$0x0,eq,$L1
goto_tb $0x0
mov_i32 pc,$0x20108
exit_tb $0x7f9764000040
set_label $L1
goto_tb $0x1
exit_tb $0x7f9764000041
set_label $L0
exit_tb $0x7f9764000043
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240201103340.119081-3-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Taylor Simpson
76eaa97157
Hexagon (target/hexagon) Analyze reads before writes
...
We divide gen_analyze_funcs.py into 3 phases
Declare the operands
Analyze the register reads
Analyze the register writes
We also create special versions of ctx_log_*_read for new operands
Check that the operand is written before the read
This is a precursor to improving the analysis for short-circuiting
the packet semantics in a subsequent commit
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com >
Reviewed-by: Brian Cain <bcain@quicinc.com >
Message-Id: <20240201103340.119081-2-ltaylorsimpson@gmail.com >
Signed-off-by: Brian Cain <bcain@quicinc.com >
2024-05-05 16:22:07 -07:00
Richard Henderson
d6f898cf85
target/sparc: Split out do_ms16b
...
The unit operation for fmul8x16 and friends is described in the
manual as "MS16b". Split that out for clarity. Improve rounding
with an unconditional addition of 0.5 as a fixed-point integer.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240502165528.244004-8-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Richard Henderson
d3ef26afde
target/sparc: Fix FPMERGE
...
This instruction has f32 inputs, which changes the decode
of the register numbers.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240502165528.244004-7-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Richard Henderson
be8998e046
target/sparc: Fix FMULD8*X16
...
Not only do these instructions have f32 inputs, they also do not
perform rounding. Since these are relatively simple, implement
them properly inline.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240502165528.244004-6-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Richard Henderson
a859602c74
target/sparc: Fix FMUL8x16A{U,L}
...
These instructions have f32 inputs, which changes the decode
of the register numbers. While we're fixing things, use a
common helper for both insns, extracting the 16-bit scalar
in tcg beforehand.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240502165528.244004-5-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Richard Henderson
9157dccc7e
target/sparc: Fix FMUL8x16
...
This instruction has f32 as source1, which alters the
decoding of the register number, which means we've been
passing the wrong data for odd register numbers.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240502165528.244004-4-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Richard Henderson
7b616f36de
target/sparc: Fix FEXPAND
...
This is a 2-operand instruction, not 3-operand.
Worse, we took the source from the wrong operand.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240502165528.244004-3-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Richard Henderson
1cde1a2a89
linux-user/sparc: Add more hwcap bits for sparc64
...
Supply HWCAP_SPARC_V8PLUS, HWCAP_SPARC_MUL32, HWCAP_SPARC_DIV32,
HWCAP_SPARC_POPC, HWCAP_SPARC_FSMULD, HWCAP_SPARC_VIS, HWCAP_SPARC_VIS2.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240502165528.244004-2-richard.henderson@linaro.org >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Mark Cave-Ayland
7c420a4d7c
hw/sparc64: set iommu_platform=on for virtio devices attached to the sun4u machine
...
The sun4u machine has an IOMMU and therefore it is possible to program it such
that the virtio-device IOVA does not map directly to the CPU physical address.
This is not a problem with Linux which always maps the IOVA directly to the CPU
physical address, however it is required for the NetBSD virtio driver where this
is not the case.
Set the sun4u machine defaults for all virtio devices so that disable-legacy=on
and iommu_platform=on to ensure a default configuration will allow virtio
devices to function correctly on both Linux and NetBSD.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20240418205730.31396-1-mark.cave-ayland@ilande.co.uk >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Thomas Huth
029171b5d6
docs/about: Deprecate the old "UltraSparc" CPU names that contain a "+"
...
For consistency we should drop the names with a "+" in it in the
long run.
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Signed-off-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240419084812.504779-5-thuth@redhat.com >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Thomas Huth
49ce37e3d0
docs/system/target-sparc: Improve the Sparc documentation
...
Add some words about how to enable or disable boolean features,
and remove the note about a Linux kernel being available on the
QEMU website (they have been removed long ago already), and the
note about NetBSD and OpenBSD still having issues (they should
work fine nowadays).
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2141
Signed-off-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240419084812.504779-4-thuth@redhat.com >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Thomas Huth
4a7bdec3a6
target/sparc/cpu: Avoid spaces by default in the CPU names
...
The output of "-cpu help" is currently rather confusing to the users:
It might not be fully clear which part of the output defines the CPU
names since the CPU names contain white spaces (which we later have to
convert into dashes internally). At best it's at least a nuisance since
the users might need to specify the CPU names with quoting on the command
line if they are not aware of the fact that the CPU names could be written
with dashes instead. So let's finally clean up this mess by using dashes
instead of white spaces for the CPU names, like we're doing it internally
later (and like we're doing it in most other targets of QEMU).
Note that it is still possible to pass the CPU names with spaces to the
"-cpu" option, since sparc_cpu_type_name() still translates those to "-".
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2141
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Signed-off-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20240419084812.504779-3-thuth@redhat.com >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:48 +01:00
Thomas Huth
6b568e3f1d
target/sparc/cpu: Rename the CPU models with a "+" in their names
...
Commit b447378e12 ("qom/object: Limit type names to alphanumerical ...")
cut down the amount of allowed characters for QOM types to a saner set.
The "+" character was meant to be included in this set, so we had to
add a hack there to still allow the legacy names of POWER and Sparc64
CPUs. However, instead of putting such a hack in the common QOM code,
there is a much better place to do this: The sparc_cpu_class_by_name()
function which is used to look up the names of all Sparc CPUs.
Thus let's finally get rid of the "+" in the Sparc CPU names, and provide
backward compatibility for the old names via some simple checks in the
sparc_cpu_class_by_name() function.
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Signed-off-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240419084812.504779-2-thuth@redhat.com >
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
2024-05-05 21:02:47 +01:00
Richard Henderson
248f6f62df
Merge tag 'pull-axp-20240504' of https://gitlab.com/rth7680/qemu into staging
...
target/alpha: Implement CF_PCREL
# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmY2VlYdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV/IxQf/UAxpxtc+glkuZ17C
# mUliqx/Vif31BuKw31GVSDENOMteD900fR8+nNGY401+2hdZxoNo2N70ZL1h9AgX
# xWVz1H33MwBXbW3lWhGSpikJ/Sd3K7dsqZpRWlr1uUEFmNXDSihKgY3JfhJ4mEsq
# 8IIITyixSiiRyl1HBgfCUqLfHkWQamHz/Tbmku9wvOZ5fYkPHV1kCmlQ8X89iB9j
# yxHW9Zcm8cShD0w4pU1HZAttHhyNZrB70ebauksAWX6QIG6fdTv+qMz9XP4FofuT
# SwLuYja3ohoTijFkC7ctA0dbsF3xwCFKES6CdP8Ne5cKHSzsrejZhh8z/0uHi+D2
# jwxnMg==
# =oK6Y
# -----END PGP SIGNATURE-----
# gpg: Signature made Sat 04 May 2024 08:37:58 AM PDT
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org "
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org >" [ultimate]
* tag 'pull-axp-20240504' of https://gitlab.com/rth7680/qemu :
target/alpha: Implement CF_PCREL
target/alpha: Split out gen_pc_disp
target/alpha: Split out gen_goto_tb
target/alpha: Simplify gen_bcond_internal()
target/alpha: Return DISAS_NORETURN once
target/alpha: Inline DISAS_PC_UPDATED and return DISAS_NORETURN
target/alpha: Use DISAS_NEXT definition instead of magic '0' value
target/alpha: Hoist branch shift to initial decode
target/alpha: Use cpu_env in preference to ALPHA_CPU
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-05-04 08:39:46 -07:00
Richard Henderson
23bb086350
target/alpha: Implement CF_PCREL
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-10-philmd@linaro.org >
2024-05-04 08:05:51 -07:00
Richard Henderson
b1a3eacf31
target/alpha: Split out gen_pc_disp
...
Prepare for pcrel by not modifying cpu_pc before use,
in the case of JSR.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-9-philmd@linaro.org >
2024-05-04 08:05:51 -07:00
Richard Henderson
82b60d2509
target/alpha: Split out gen_goto_tb
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240424234436.995410-4-richard.henderson@linaro.org >
[PMD: Split bigger patch, part 5/5]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-8-philmd@linaro.org >
2024-05-04 08:05:49 -07:00
Philippe Mathieu-Daudé
39482c2edc
target/alpha: Simplify gen_bcond_internal()
...
Richard Henderson explained on IRC:
bcond_internal() used to insist that both branch
destination and branch fallthrough are use_goto_tb;
if not, we'd use movcond to compute an indirect jump.
But it's perfectly fine for e.g. the branch fallthrough
to use_goto_tb, and the branch destination to use
an indirect branch.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240424234436.995410-4-richard.henderson@linaro.org >
[PMD: Split bigger patch, part 4/5]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-7-philmd@linaro.org >
2024-05-04 08:02:57 -07:00
Richard Henderson
9804ab26d0
target/alpha: Return DISAS_NORETURN once
...
Trivial change to make next commits easier to understand.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240424234436.995410-4-richard.henderson@linaro.org >
[PMD: Split bigger patch, part 3/5]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-6-philmd@linaro.org >
2024-05-04 07:38:09 -07:00
Richard Henderson
c0fcd5612e
target/alpha: Inline DISAS_PC_UPDATED and return DISAS_NORETURN
...
Inline DISAS_PC_UPDATED switch case from alpha_tr_tb_stop():
switch (ctx->base.is_jmp) {
...
case DISAS_PC_UPDATED:
tcg_gen_lookup_and_goto_ptr();
break;
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240424234436.995410-4-richard.henderson@linaro.org >
[PMD: Split bigger patch, part 2/5]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-5-philmd@linaro.org >
2024-05-04 07:38:09 -07:00
Richard Henderson
0cda93c9b5
target/alpha: Use DISAS_NEXT definition instead of magic '0' value
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240424234436.995410-4-richard.henderson@linaro.org >
[PMD: Split bigger patch, part 1/5]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-4-philmd@linaro.org >
2024-05-04 07:38:08 -07:00
Richard Henderson
1bcae46aac
target/alpha: Hoist branch shift to initial decode
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-3-philmd@linaro.org >
2024-05-04 07:38:08 -07:00
Richard Henderson
ab709f13b8
target/alpha: Use cpu_env in preference to ALPHA_CPU
...
ALPHA_CPU has a dynamic object type assert, which is
unnecessary considering that these are all class hooks.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240503072014.24751-2-philmd@linaro.org >
2024-05-04 07:38:08 -07:00
Richard Henderson
97c872276d
Merge tag 'accel-sh4-ui-20240503' of https://github.com/philmd/qemu into staging
...
- Fix NULL dereference in NVMM & WHPX init_vcpu()
- Move user emulation headers "exec/user" to "user"
- Fix SH-4 ADDV / SUBV opcodes
- Drop Cocoa compatility on macOS <= 10.12
- Update Anthony PERARD email
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmY1BE4ACgkQ4+MsLN6t
# wN73jg//dbdHQU+4oM7BgTduDZn1ulKz5DtNEJawRP6vxIcSQ+Co2Yd+gdLOSXNI
# 2BaoiOQ8cyDEHj1Uud3WVB0GsQYvHrqgXcjeHpX6yFFCZNyRvzEXizJPHKCtq+4e
# XQFtfTFftlJdaKCLqyDqVnrVNRacFPm7kinrEQbTSmglAhwnyu3GwsokDAYiJTqp
# g0n6mX/pWVEMDNY1HrDsk2Q/pyIZFmzhtuRyXRvi/bh8/BnmMCpySG+2463dnu1O
# xIGr2w8ldc+mKn2w2k3wYKDnUHz/NhOkE86tL/ZxIgjCzeenZXwXNdzM+cuAmOZX
# L9KIu5io6bTevYVwwHhd5/N6MCqVEhoRmsUQfF0CIkIzxXbyF14M89YHXZo3YJAd
# n2uoJ7i6hF/4Pt6Uqlg09+vEk7onwrobnTPnbKHEKNWHNOMKXpq1CBxxcVz2qe24
# +CTAAOOhHqaTjODPSexzHZDZYxugCy1XSqps9AFF1HqUcmsPCL/PQ75YGTJJO0oF
# 0V1Yvzjhin26AQS9SglIeXnHxYC26Cg2mXnUpVbryWnG888r0XAGpRl+FEuXK7Ln
# /dGuCIWTozypSkG9304IlxlYsOoXhL11NZqINW+W/Tor3dMRQhWUQcHqv98Jl4Ad
# rnpzZ0Dhd9ityZdbI0CCMZZZLY5dw1Rq5q407GTJr1CDU4PJBh0=
# =N8q0
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 03 May 2024 08:35:42 AM PDT
# gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
# gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org >" [full]
* tag 'accel-sh4-ui-20240503' of https://github.com/philmd/qemu :
ui/cocoa.m: Drop old macOS-10.12-and-earlier compat ifdefs
target/sh4: Rename TCGv variables as manual for SUBV opcode
target/sh4: Rename TCGv variables as manual for ADDV opcode
target/sh4: Fix SUBV opcode
target/sh4: Fix ADDV opcode
MAINTAINERS: Update my email address
plugins: Update stale comment
plugins/api: Only include 'exec/ram_addr.h' with system emulation
coverity: Update user emulation regexp
user: Move 'thunk.h' from 'exec/user' to 'user'
user: Move 'abitypes.h' from 'exec/user' to 'user'
exec: Include missing license in 'exec/cpu-common.h'
accel/whpx: Fix NULL dereference in whpx_init_vcpu()
accel/nvmm: Fix NULL dereference in nvmm_init_vcpu()
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-05-03 14:42:50 -07:00
Paolo Bonzini
deb686ef0e
qga/commands-posix: fix typo in qmp_guest_set_user_password
...
qga/commands-posix.c does not compile on FreeBSD due to a confusion
between "chpasswdata" (wrong) and "chpasswddata" (used in the #else
branch).
Fixes: 0e5b75a390 ("qga/commands-posix: qmp_guest_set_user_password: use ga_run_command helper")
Reviewed-by: Thomas Huth <thuth@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2024-05-03 19:36:51 +02:00
Peter Maydell
2d27c91e2b
ui/cocoa.m: Drop old macOS-10.12-and-earlier compat ifdefs
...
We only support the most recent two versions of macOS (currently
macOS 13 Ventura and macOS 14 Sonoma), and our ui/cocoa.m code
already assumes at least macOS 12 Monterey or better, because it uses
NSScreen safeAreaInsets, which is 12.0-or-newer.
Remove the ifdefs that were providing backwards compatibility for
building on 10.12 and earlier versions.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Message-ID: <20240502142904.62644-1-peter.maydell@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
2024-05-03 17:33:26 +02:00
Philippe Mathieu-Daudé
942ba09d7c
target/sh4: Rename TCGv variables as manual for SUBV opcode
...
To easily compare with the SH4 manual, rename:
REG(B11_8) -> Rn
REG(B7_4) -> Rm
t0 -> result
Mention how underflow is calculated.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20240430163125.77430-5-philmd@linaro.org >
2024-05-03 17:33:26 +02:00
Philippe Mathieu-Daudé
40ed073f89
target/sh4: Rename TCGv variables as manual for ADDV opcode
...
To easily compare with the SH4 manual, rename:
REG(B11_8) -> Rn
REG(B7_4) -> Rm
t0 -> result
Mention how overflow is calculated.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp >
Message-Id: <20240430163125.77430-4-philmd@linaro.org >
2024-05-03 17:33:26 +02:00
Philippe Mathieu-Daudé
e88a856efd
target/sh4: Fix SUBV opcode
...
The documentation says:
SUBV Rm, Rn Rn - Rm -> Rn, underflow -> T
The overflow / underflow can be calculated as:
T = ((Rn ^ Rm) & (Result ^ Rn)) >> 31
However we were using the incorrect:
T = ((Rn ^ Rm) & (Result ^ Rm)) >> 31
Fix by using the Rn register instead of Rm.
Add tests provided by Paul Cercueil.
Cc: qemu-stable@nongnu.org
Fixes: ad8d25a11f ("target-sh4: implement addv and subv using TCG")
Reported-by: Paul Cercueil <paul@crapouillou.net >
Suggested-by: Paul Cercueil <paul@crapouillou.net >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2318
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp >
Message-Id: <20240430163125.77430-3-philmd@linaro.org >
2024-05-03 17:33:26 +02:00
Philippe Mathieu-Daudé
c365e6b070
target/sh4: Fix ADDV opcode
...
The documentation says:
ADDV Rm, Rn Rn + Rm -> Rn, overflow -> T
But QEMU implementation was:
ADDV Rm, Rn Rn + Rm -> Rm, overflow -> T
Fix by filling the correct Rm register.
Add tests provided by Paul Cercueil.
Cc: qemu-stable@nongnu.org
Fixes: ad8d25a11f ("target-sh4: implement addv and subv using TCG")
Reported-by: Paul Cercueil <paul@crapouillou.net >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2317
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp >
Message-Id: <20240430163125.77430-2-philmd@linaro.org >
2024-05-03 17:33:26 +02:00
Anthony PERARD
a0dbef9f33
MAINTAINERS: Update my email address
...
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
Acked-by: Paul Durrant <paul@xen.org >
Acked-by: Stefano Stabellini <sstabellini@kernel.org >
Message-ID: <20240429154938.19340-1-anthony.perard@citrix.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
2024-05-03 17:33:26 +02:00