Excerpts from David Gibson's message of April 16, 2021 2:28 pm:
> On Thu, Apr 15, 2021 at 03:42:27PM +1000, Nicholas Piggin wrote:
>> POWER10 adds a new bit that modifies interrupt behaviour, LPCR[HAIL],
>> and it removes support for the LPCR[AIL]=0b10 mode.
>>
>> Reviewed-by: Cédric Le Goater
>>
Excerpts from David Gibson's message of April 16, 2021 2:24 pm:
> On Thu, Apr 15, 2021 at 03:42:26PM +1000, Nicholas Piggin wrote:
>> The AIL logic is becoming unmanageable spread all over powerpc_excp(),
>> and it is slated to get even worse with POWER10 support.
>>
>> Move it all to a new helper
Hi David,
On 2021/4/16 12:52, David Gibson wrote:
On Tue, Apr 13, 2021 at 04:07:40PM +0800, Yanan Wang wrote:
From: Andrew Jones
qemu_fdt_add_path() works like qemu_fdt_add_subnode(), except
it also adds any missing subnodes in the path. We also tweak
an error message of qemu_fdt_add_subnode(
On 4/14/21 11:04 AM, Markus Armbruster wrote:
John Snow writes:
Thanks for taking this on. I realize it's a slog.
(Update: much later: AUUUGH WHY DID I DECIDE TO WRITE DOCS. MY HUBRIS)
Signed-off-by: John Snow
---
scripts/qapi/expr.py | 213 ++
This is BFDOT for both AArch64 AdvSIMD and SVE,
and VDOT.BF16 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 2 ++
target/arm/neon-shared.decode | 2 ++
target/arm/sve.decode | 3 +++
target/arm/translate-a64.c | 41 ++
This is BFMLAL{B,T} for both AArch64 AdvSIMD and SVE,
and VFMA{B,T}.BF16 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 3 +++
target/arm/neon-shared.decode | 3 +++
target/arm/sve.decode | 3 +++
target/arm/translate-a64.c | 13 +
This is BFCVT{N,T} for both AArch64 AdvSIMD and SVE,
and VCVT.BF16.F32 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h | 4 +++
target/arm/helper.h | 1 +
target/arm/neon-dp.decode | 1 +
target/arm/sve.decode | 2 ++
target/
This is BFDOT for both AArch64 AdvSIMD and SVE,
and VDOT.BF16 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 3 +++
target/arm/neon-shared.decode | 2 ++
target/arm/sve.decode | 3 +++
target/arm/translate-a64.c | 20 +
Signed-off-by: Richard Henderson
---
target/arm/cpu64.c | 3 +++
target/arm/cpu_tcg.c | 1 +
2 files changed, 4 insertions(+)
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 379f90fab8..db4f48edcf 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -660,6 +660,7 @@ static vo
For Arm BFDOT and BFMMLA, we need a version of round-to-odd
that overflows to infinity, instead of the max normal number.
Signed-off-by: Richard Henderson
---
include/fpu/softfloat-types.h | 4 +++-
fpu/softfloat.c | 8 ++--
2 files changed, 9 insertions(+), 3 deletions(-)
dif
This is BFMMLA for both AArch64 AdvSIMD and SVE,
and VMMLA.BF16 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 3 +++
target/arm/neon-shared.decode | 2 ++
target/arm/sve.decode | 6 +++--
target/arm/translate-a64.c | 10 +
ta
This is the 64-bit BFCVT and the 32-bit VCVT{B,T}.BF16.F32.
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 1 +
target/arm/vfp.decode | 2 ++
target/arm/translate-a64.c | 19 +++
target/arm/vfp_helper.c| 5 +
target/arm/translate
Signed-off-by: Richard Henderson
---
target/arm/translate-a64.c | 15 ++-
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 668edf3a00..d8ec219bb2 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/transla
This is BFMLAL{B,T} for both AArch64 AdvSIMD and SVE,
and VFMA{B,T}.BF16 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 2 ++
target/arm/neon-shared.decode | 2 ++
target/arm/sve.decode | 2 ++
target/arm/translate-a64.c | 15
Based-on: 20210416210240.1591291-1-richard.hender...@linaro.org
("[PATCH v5 for-6.1 00/81] target/arm: Implement SVE2")
https://gitlab.com/rth7680/qemu/-/tree/tgt-arm-bf16
https://gitlab.com/rth7680/qemu/-/commit/2ecc372b672d11fdc4e2573d789bfb3f5e6cba48
Bfloat16 is a set of 2 tightly-coupled feat
Note that the SVE BFLOAT16 support does not require SVE2,
it is an independent extension.
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 15 +++
1 file changed, 15 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 134dc65e34..38db20c721 100644
--- a/targe
Patchew URL:
https://patchew.org/QEMU/20210416210240.1591291-1-richard.hender...@linaro.org/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20210416210240.1591291-1-richard.hender...@linaro.org
Subject: [PATCH v5 for-6
Signed-off-by: Richard Henderson
---
target/arm/cpu.c | 1 +
target/arm/cpu64.c | 13 +
2 files changed, 14 insertions(+)
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 0dd623e590..30fd5d5ff7 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -1464,6 +1464,7 @@ static
Cut and paste error from another pattern.
Signed-off-by: Richard Henderson
---
target/arm/translate-neon.c.inc | 3 ---
1 file changed, 3 deletions(-)
diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.inc
index 6385d13a7e..c1fbe21ae6 100644
--- a/target/arm/translate-ne
From: Stephen Long
Implements SQSHL/UQSHL, SRSHR/URSHR, and SQSHLU
Signed-off-by: Stephen Long
Message-Id: <20200430194159.24064-1-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 33 +
target/arm/sve.decode | 5
target/arm
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200428174332.17162-4-stepl...@quicinc.com>
[rth: Use do_frint_mode, which avoids a specific runtime helper.]
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 2 ++
target/arm/translate-sve.c | 49 ++
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200430191405.21641-1-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
v2: Fixed esz index and c++ comments
v3: Fixed denormal arithmetic and raise invalid.
---
target/arm/helper-sve.h| 4 +++
target/arm/sve.decode
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 5 +++
target/arm/helper.h| 4 +++
target/arm/sve.decode | 4 +++
target/arm/translate-sve.c | 16 +
target/arm/vec_helper.c| 68 ++
5 files changed, 97 insertions(+)
Now that we have a common helper, sharing decode does not
save much. Also, this will solve an upcoming naming problem.
Signed-off-by: Richard Henderson
---
target/arm/neon-shared.decode | 9 ++---
target/arm/translate-neon.c.inc | 30 ++
2 files changed, 28 in
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200428174332.17162-3-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 5 +
target/arm/sve.decode | 2 ++
target/arm/sve_helper.c| 23 +++
target/arm/translate
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 9 +
target/arm/sve.decode | 18 ++
target/arm/sve_helper.c| 30 ++
target/arm/translate-sve.c | 32
4 files changed, 81 insertions(+),
This is {S,U,US}MMLA for both AArch64 AdvSIMD and SVE,
and V{S,U,US}MMLA.S8 for AArch32 NEON.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 7 +++
target/arm/neon-shared.decode | 7 +++
target/arm/sve.decode | 6 +++
target/arm/translate-a64.c | 18 ++
The Linux kernel will call set-indicator to move a DRC to 'unisolate' in
the case a device removal fails. Setting a DRC that is already
unisolated or configured to 'unisolate' is a no-op for the current
hypervisors that supports pSeries guests, namely QEMU and phyp, and is
being used to signal hotu
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 4 ++
target/arm/translate-sve.c | 97 ++
2 files changed, 101 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 17adb393ff..df870ce23b 100644
--- a/target/arm/sve.
For SVE, we potentially have a 4th argument coming from the
movprfx instruction. Currently we do not optimize movprfx,
so the problem is not visible.
Signed-off-by: Richard Henderson
---
target/arm/helper.h | 20 ++---
target/arm/translate-a64.c | 28 ++
Hi,
This is the QEMU side of a kernel change being proposed in [1],
where an attempt to implement a CPU hotunplug error report
mechanism was proposed.
The idea was discussed first in this mailing list [2], where the
RTAS set-indicator call would be used to signal QEMU when a kernel
side error hap
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 5 +
target/arm/sve.decode | 4
target/arm/translate-sve.c | 16
3 files changed, 25 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 904f5da290..b43fd066ba 100644
--- a/target/
Signed-off-by: Richard Henderson
---
target/arm/cpu.h| 5 +
target/arm/neon-shared.decode | 6 ++
target/arm/translate-neon.c.inc | 27 +++
3 files changed, 38 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index a0865e224c..134
Used by FMLA and DOT, but will shortly be used more.
Split FMLA from FMLS to avoid an extra sub field;
similarly for SDOT from UDOT.
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 29 +++--
target/arm/translate-sve.c | 38 ---
The table used by do_ldrq is a subset of the table used by do_ld_zpa;
we can share them by passing dtype instead of msz to do_ldrq.
Signed-off-by: Richard Henderson
---
target/arm/translate-sve.c | 254 ++---
1 file changed, 126 insertions(+), 128 deletions(-)
di
We were extracting the M register twice, once incorrectly
as M:vm and once correctly as rm. Remove the incorrect
name and remove the incorrect decode.
Signed-off-by: Richard Henderson
---
target/arm/neon-shared.decode | 4 +-
target/arm/translate-neon.c.inc | 90 ++---
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200422165503.13511-1-stepl...@quicinc.com>
[rth: Fix indexing in helpers, expand macro to straight functions.]
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 10 ++
target/arm/helper-sve.h| 3 ++
target/a
From: Stephen Long
Implements both vectored and indexed FMLALB, FMLALT, FMLSLB, FMLSLT
Signed-off-by: Stephen Long
Message-Id: <20200504171240.11220-1-stepl...@quicinc.com>
[rth: Rearrange to use float16_to_float32_by_bits.]
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 5
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 5 +
target/arm/sve.decode | 12
target/arm/sve_helper.c| 20
target/arm/translate-sve.c | 19 +++
4 files changed, 52 insertions(+), 4 deletions(-)
diff --git a/targ
Split out a helper that can handle the 4-register
format for helpers shared with SVE.
Signed-off-by: Richard Henderson
---
target/arm/translate-neon.c.inc | 98 +++--
1 file changed, 43 insertions(+), 55 deletions(-)
diff --git a/target/arm/translate-neon.c.inc b/tar
In addition, use the same vector generator interface for AdvSIMD.
This fixes a bug in which the AdvSIMD insn failed to clear the
high bits of the SVE register.
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 4 ++
target/arm/helper.h| 2 +
target/arm/translate-a64.h
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 3 ++
target/arm/sve.decode | 8 ++
target/arm/sve_helper.c| 29 +--
target/arm/translate-sve.c | 58 ++
4 files changed, 90 insertions(+), 8 deletions(-)
diff --g
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 5 +
target/arm/sve.decode | 7 +++
target/arm/translate-sve.c | 38 ++
3 files changed, 50 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index 132ac5d8ec..904f5d
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 5 +
target/arm/translate-a64.c | 25 +
2 files changed, 30 insertions(+)
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
index b43fd066ba..a0865e224c 100644
--- a/target/arm/cpu.h
+++ b/target/arm/cp
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200428174332.17162-2-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 5 +
target/arm/sve.decode | 4
target/arm/sve_helper.c| 20
target/arm/translate-
Signed-off-by: Richard Henderson
---
v2: Fix do_sqrdmlah_d (laurent desnogues)
---
target/arm/helper-sve.h| 18
target/arm/vec_internal.h | 5 +
target/arm/sve.decode | 5 +
target/arm/sve_helper.c| 42 ++
target/arm/tra
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 14 +
target/arm/sve.decode | 8
target/arm/sve_helper.c| 40 ++
target/arm/translate-sve.c | 8
4 files changed, 70 insertions(+)
diff --git a/target/ar
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 2 ++
target/arm/sve.decode | 4
target/arm/translate-sve.c | 16
target/arm/vec_helper.c| 18 ++
4 files changed, 40 insertions(+)
diff --git a/target/arm/helper.h b/target/arm/hel
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200428144352.9275-1-stepl...@quicinc.com>
[rth: rearrange the macros a little and rebase]
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 10 +
target/arm/sve.decode | 5 +++
target/arm/sve_helper.c|
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 8
target/arm/translate-sve.c | 23 +++
2 files changed, 31 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 65cb0a2206..9bfaf737b7 100644
--- a/target/arm/sve.decode
+++
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 28 ++
target/arm/sve.decode | 11 ++
target/arm/sve_helper.c| 18 +
target/arm/translate-sve.c | 76 ++
4 files changed, 133 insertions(+)
diff --git a/target/a
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 10 +
target/arm/sve.decode | 4 ++
target/arm/translate-sve.c | 18
target/arm/vec_helper.c| 84 ++
4 files changed, 116 insertions(+)
diff --git a/target/arm/helper.h b/
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 14 ++
target/arm/sve.decode | 8
target/arm/translate-sve.c | 8
target/arm/vec_helper.c| 88 ++
4 files changed, 118 insertions(+)
diff --git a/target/arm/helper.h b/t
For SVE, we potentially have a 4th argument coming from the
movprfx instruction. Currently we do not optimize movprfx,
so the problem is not visible.
Signed-off-by: Richard Henderson
---
v4: Fix double addition (zhiwei).
---
target/arm/helper.h | 20 +++---
target/arm/sve.decode
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 14 ++
target/arm/sve.decode | 14 ++
target/arm/sve_helper.c| 30 +
target/arm/translate-sve.c | 54 ++
4 files changed, 112 insertions(+)
diff --gi
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 6 ++
target/arm/translate-sve.c | 11 +++
2 files changed, 17 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 73f1348313..6ab13b2f78 100644
--- a/target/arm/sve.decode
+++ b/target/arm/
Currently only used by FMUL, but will shortly be used more.
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 14 ++
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 04ef38f148..a504b55dad 100644
--- a/targe
From: Stephen Long
Reviewed-by: Richard Henderson
Signed-off-by: Stephen Long
Message-Id: <20200415145915.2859-1-stepl...@quicinc.com>
[rth: Expanded comment for do_match2]
Signed-off-by: Richard Henderson
---
v2: Apply esz_mask to input pg to fix output flags.
---
target/arm/helper-sve.h
From: Stephen Long
This completes the section 'SVE2 integer add/subtract narrow high part'
Signed-off-by: Stephen Long
Message-Id: <20200417162231.10374-5-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
v2: Fix round bit type (laurent desnogues)
---
target/arm/helper-sve.h| 8
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 7 +++
target/arm/translate-sve.c | 30 ++
2 files changed, 37 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 74ac72bdbd..65cb0a2206 100644
--- a/target/arm/sve.deco
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 6 ++
target/arm/sve.decode | 12 +++
target/arm/sve_helper.c| 50 +
target/arm/translate-sve.c | 213 +
4 files changed, 281 insertions(+)
diff --git a/target/arm/helper-sv
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200417162231.10374-4-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 8
target/arm/sve.decode | 2 ++
target/arm/sve_helper.c| 10 ++
target/arm/translate-sve.c |
From: Stephen Long
Add decoding logic for SVE2 64-bit/32-bit scatter non-temporal
store insns.
64-bit
* STNT1B (vector plus scalar)
* STNT1H (vector plus scalar)
* STNT1W (vector plus scalar)
* STNT1D (vector plus scalar)
32-bit
* STNT1B (vector plus scalar)
* STNT1H (vector plus scalar)
* STNT
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200423180347.9403-1-stepl...@quicinc.com>
[rth: Rename the trans_* functions to *_sve2.]
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 11 +--
target/arm/translate-sve.c | 35 +
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200416173109.8856-1-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
v2: Fix overlap between output and input vectors.
v4: Fix histseg counting (zhiwei).
---
target/arm/helper-sve.h| 7 ++
target/arm/sve.decode
SVE2 has two additional sizes of the operation and unlike NEON,
there is no saturation flag. Create new entry points for SVE2
that do not set QC.
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 17
target/arm/sve.decode | 5 ++
target/arm/translate-sve.c | 18 +++
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 16 +++
target/arm/sve.decode | 4 ++
target/arm/sve_helper.c| 35 ++
target/arm/translate-sve.c | 98 ++
4 files changed, 153 insertions(+)
diff --git a/target/arm/hel
Signed-off-by: Richard Henderson
---
v2: Fix decodetree typo
v3: Fix iteration counts (zhiwei).
v4: Update for PREDDESC.
---
target/arm/sve.decode | 3 ++
target/arm/translate-sve.c | 67 ++
2 files changed, 70 insertions(+)
diff --git a/target/arm/sve.d
From: Stephen Long
Add decoding logic for SVE2 64-bit/32-bit gather non-temporal
load insns.
64-bit
* LDNT1SB
* LDNT1B (vector plus scalar)
* LDNT1SH
* LDNT1H (vector plus scalar)
* LDNT1SW
* LDNT1W (vector plus scalar)
* LDNT1D (vector plus scalar)
32-bit
* LDNT1SB
* LDNT1B (vector plus scalar
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200417162231.10374-2-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 8
target/arm/sve.decode | 5 +
target/arm/sve_helper.c| 36
t
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 16 +++
target/arm/sve.decode | 4 ++
target/arm/sve_helper.c| 24 ++
target/arm/translate-sve.c | 93 ++
4 files changed, 137 insertions(+)
diff --git a/target/arm/helper-
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 5 +
target/arm/translate-sve.c | 10 ++
2 files changed, 15 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index d3c4ec6dd1..695a16551e 100644
--- a/target/arm/sve.decode
+++ b/target/arm/sv
From: Stephen Long
Signed-off-by: Stephen Long
Message-Id: <20200417162231.10374-3-stepl...@quicinc.com>
Signed-off-by: Richard Henderson
---
v2: Fix round bit type (laurent desnogues)
---
target/arm/helper-sve.h| 8
target/arm/sve.decode | 2 ++
target/arm/sve_helper.c
From: Stephen Long
Signed-off-by: Stephen Long
Reviewed-by: Richard Henderson
Signed-off-by: Richard Henderson
---
v2: Load all inputs before writing any output (laurent desnogues)
---
target/arm/helper-sve.h| 35 +
target/arm/sve.decode | 8 +++
targ
Signed-off-by: Richard Henderson
---
v2: Fix typo in gen_shrnb_vec (laurent desnogues)
v3: Replace DO_RSHR with an inline function
---
target/arm/helper-sve.h| 16
target/arm/sve.decode | 8 ++
target/arm/sve_helper.c| 54 -
target/arm/translate-sve.c | 160 +
Signed-off-by: Richard Henderson
---
v2: Fix subtraction ordering (laurent desnogues).
---
target/arm/helper-sve.h| 10 +
target/arm/sve.decode | 9
target/arm/sve_helper.c| 42 ++
target/arm/translate-sve.c | 31 +
Rename the existing sve_while (less-than) helper to sve_whilel
to make room for a new sve_whileg helper for greater-than.
Signed-off-by: Richard Henderson
---
v2: Use a new helper function to implement this.
v4: Update for PREDDESC.
---
target/arm/helper-sve.h| 3 +-
target/arm/sve.decode
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 6 ++
target/arm/translate-sve.c | 21 +
2 files changed, 27 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 695a16551e..32b15e4192 100644
--- a/target/arm/sve.decode
+++ b/t
Signed-off-by: Richard Henderson
---
v2: Fix select offsetting and argument order (laurent desnogues).
---
target/arm/helper-sve.h| 14 ++
target/arm/sve.decode | 12 +
target/arm/sve_helper.c| 23
target/arm/translate-sve.c | 55 +
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 10 ++
target/arm/helper-sve.h| 1 +
target/arm/sve.decode | 2 ++
target/arm/translate-sve.c | 22 ++
target/arm/vec_helper.c| 24
5 files changed, 59 insertions(
This completes the section "SVE2 bitwise shift right narrow".
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 16 ++
target/arm/sve.decode | 4 ++
target/arm/sve_helper.c| 24 +
target/arm/translate-sve.c | 105 +
4 f
Signed-off-by: Richard Henderson
---
v2: Fix sel indexing and argument order (laurent desnogues).
---
target/arm/helper-sve.h| 3 +++
target/arm/sve.decode | 6 ++
target/arm/sve_helper.c| 34 ++
target/arm/translate-sve.c | 23 ++
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 5 +
target/arm/sve.decode | 5 +
target/arm/sve_helper.c| 20
target/arm/translate-sve.c | 19 +++
4 files changed, 49 insertions(+)
diff --git a/target/arm/helper-sve.h b/t
Signed-off-by: Richard Henderson
---
target/arm/cpu.h | 5 +++
target/arm/helper-sve.h| 15
target/arm/sve.decode | 6
target/arm/sve_helper.c| 73 ++
target/arm/translate-sve.c | 36 +++
5 files changed, 1
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 24
target/arm/sve.decode | 12 ++
target/arm/sve_helper.c| 56 +
target/arm/translate-sve.c | 238 +
4 files changed, 330 insertions(+)
diff --git a/target/arm/helper-s
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 54 +++
target/arm/sve.decode | 11 +++
target/arm/sve_helper.c| 194 ++---
target/arm/translate-sve.c | 7 ++
4 files changed, 210 insertions(+), 56 deletions(-)
diff --git a/t
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 6 ++
target/arm/translate-sve.c | 4
2 files changed, 10 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index fbfd57b23a..12be0584a8 100644
--- a/target/arm/sve.decode
+++ b/target/arm/sve.decod
Signed-off-by: Richard Henderson
---
v2: Fix select offsets (laurent desnogues).
---
target/arm/helper-sve.h| 24
target/arm/sve.decode | 19
target/arm/sve_helper.c| 43 +++
target/arm/translate-sve.c | 46 +++
Signed-off-by: Richard Henderson
---
target/arm/sve.decode | 8
target/arm/translate-sve.c | 34 ++
2 files changed, 42 insertions(+)
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
index 79046d81e3..d3c4ec6dd1 100644
--- a/target/arm/sve
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 8 ++
target/arm/sve.decode | 8 ++
target/arm/sve_helper.c| 26 ++
target/arm/translate-sve.c | 159 +
4 files changed, 201 insertions(+)
diff --git a/target/arm/helper-sve.h
Signed-off-by: Richard Henderson
---
v2: Load all inputs before writing any output (laurent desnogues)
---
target/arm/helper-sve.h| 45 ++
target/arm/sve.decode | 8
target/arm/sve_helper.c| 76 ++
target/arm/translate-sve
Signed-off-by: Richard Henderson
---
v2: Shift values are always signed (laurent desnogues).
---
target/arm/helper-sve.h| 54 ++
target/arm/sve.decode | 17 +
target/arm/sve_helper.c| 78 ++
target/arm/translate-sve.
Exclude PMULL from this category for the moment.
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 15 +++
target/arm/sve.decode | 9 +
target/arm/sve_helper.c| 31 +++
target/arm/translate-sve.c | 9 +
4 files ch
Signed-off-by: Richard Henderson
---
v2: Fix select offsets (laurent desnogues).
---
target/arm/helper-sve.h| 16
target/arm/sve.decode | 12
target/arm/sve_helper.c| 30 ++
target/arm/translate-sve.c | 20
Split these operations out into a header that can be shared
between neon and sve. The "sat" pointer acts both as a boolean
for control of saturating behavior and controls the difference
in behavior between neon and sve -- QC bit or no QC bit.
Widen the shift operand in the new helpers, as the SVE
Signed-off-by: Richard Henderson
---
v2: Fix sqabs, sqneg (laurent desnogues)
---
target/arm/helper-sve.h| 13 +++
target/arm/sve.decode | 7 ++
target/arm/sve_helper.c| 29 +++
target/arm/translate-sve.c | 47 ++
4
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 14
target/arm/sve.decode | 5 +
target/arm/sve_helper.c| 44 ++
target/arm/translate-sve.c | 39 +
4 files changed, 102 insertions(+)
Signed-off-by: Richard Henderson
---
target/arm/helper-sve.h| 54 ++
target/arm/sve.decode | 11
target/arm/sve_helper.c| 39 +++
target/arm/translate-sve.c | 8 ++
4 files changed, 112 insertions(+)
diff --gi
For MUL, we can rely on generic support. For SMULH and UMULH,
create some trivial helpers. For PMUL, back in a21bb78e5817,
we organized helper_gvec_pmul_b in preparation for this use.
Signed-off-by: Richard Henderson
---
target/arm/helper.h| 10
target/arm/sve.decode | 10 +++
Based-on: 20210416185959.1520974-1-richard.hender...@linaro.org
("[PATCH v4 for-6.1 00/39] target/arm: enforce alignment")
And of course, since I messed up the alignment subject, our tooling
isn't going to thread this properly. So:
https://gitlab.com/rth7680/qemu/-/tree/tgt-arm-sve2
https://gitl
1 - 100 of 405 matches
Mail list logo