* [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm @ 2018-01-10 6:33 Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 1/2] target/arm: Split " Richard Henderson ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Richard Henderson @ 2018-01-10 6:33 UTC (permalink / raw) To: qemu-devel; +Cc: alex.bennee, peter.maydell One more piece of target/arm prep work from my SVE branch. I saw that Alex was touching the same bit of code in his ARMv8.2 fp16 patch set and thought we should coordinate on this. r~ Richard Henderson (2): target/arm: Split out vfp_expand_imm target/arm: Add fp16 support to vfp_expand_imm target/arm/translate-a64.c | 49 +++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 16 deletions(-) -- 2.13.6 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 1/2] target/arm: Split out vfp_expand_imm 2018-01-10 6:33 [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Richard Henderson @ 2018-01-10 6:33 ` Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 2/2] target/arm: Add fp16 support to vfp_expand_imm Richard Henderson ` (2 subsequent siblings) 3 siblings, 0 replies; 7+ messages in thread From: Richard Henderson @ 2018-01-10 6:33 UTC (permalink / raw) To: qemu-devel; +Cc: alex.bennee, peter.maydell Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/arm/translate-a64.c | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index ecb72e4d9c..e03cd3801a 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -5014,6 +5014,33 @@ static void disas_fp_3src(DisasContext *s, uint32_t insn) } } +/* The imm8 encodes the sign bit, enough bits to represent an exponent in + * the range 01....1xx to 10....0xx, and the most significant 4 bits of + * the mantissa; see VFPExpandImm() in the v8 ARM ARM. + */ +static uint64_t vfp_expand_imm(int size, uint8_t imm8) +{ + uint64_t imm; + + switch (size) { + case MO_64: + imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) | + (extract32(imm8, 6, 1) ? 0x3fc0 : 0x4000) | + extract32(imm8, 0, 6); + imm <<= 48; + break; + case MO_32: + imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) | + (extract32(imm8, 6, 1) ? 0x3e00 : 0x4000) | + (extract32(imm8, 0, 6) << 3); + imm <<= 16; + break; + default: + g_assert_not_reached(); + } + return imm; +} + /* Floating point immediate * 31 30 29 28 24 23 22 21 20 13 12 10 9 5 4 0 * +---+---+---+-----------+------+---+------------+-------+------+------+ @@ -5037,22 +5064,7 @@ static void disas_fp_imm(DisasContext *s, uint32_t insn) return; } - /* The imm8 encodes the sign bit, enough bits to represent - * an exponent in the range 01....1xx to 10....0xx, - * and the most significant 4 bits of the mantissa; see - * VFPExpandImm() in the v8 ARM ARM. - */ - if (is_double) { - imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) | - (extract32(imm8, 6, 1) ? 0x3fc0 : 0x4000) | - extract32(imm8, 0, 6); - imm <<= 48; - } else { - imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) | - (extract32(imm8, 6, 1) ? 0x3e00 : 0x4000) | - (extract32(imm8, 0, 6) << 3); - imm <<= 16; - } + imm = vfp_expand_imm(MO_32 + is_double, imm8); tcg_res = tcg_const_i64(imm); write_fp_dreg(s, rd, tcg_res); -- 2.13.6 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH 2/2] target/arm: Add fp16 support to vfp_expand_imm 2018-01-10 6:33 [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 1/2] target/arm: Split " Richard Henderson @ 2018-01-10 6:33 ` Richard Henderson 2018-01-10 10:11 ` [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Alex Bennée 2018-01-12 17:22 ` Peter Maydell 3 siblings, 0 replies; 7+ messages in thread From: Richard Henderson @ 2018-01-10 6:33 UTC (permalink / raw) To: qemu-devel; +Cc: alex.bennee, peter.maydell Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/arm/translate-a64.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index e03cd3801a..4fe9d82a55 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -5035,6 +5035,11 @@ static uint64_t vfp_expand_imm(int size, uint8_t imm8) (extract32(imm8, 0, 6) << 3); imm <<= 16; break; + case MO_16: + imm = (extract32(imm8, 7, 1) ? 0x8000 : 0) | + (extract32(imm8, 6, 1) ? 0x3000 : 0x4000) | + (extract32(imm8, 0, 6) << 6); + break; default: g_assert_not_reached(); } -- 2.13.6 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm 2018-01-10 6:33 [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 1/2] target/arm: Split " Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 2/2] target/arm: Add fp16 support to vfp_expand_imm Richard Henderson @ 2018-01-10 10:11 ` Alex Bennée 2018-01-12 17:22 ` Peter Maydell 3 siblings, 0 replies; 7+ messages in thread From: Alex Bennée @ 2018-01-10 10:11 UTC (permalink / raw) To: Richard Henderson; +Cc: qemu-devel, peter.maydell Richard Henderson <richard.henderson@linaro.org> writes: > One more piece of target/arm prep work from my SVE branch. > > I saw that Alex was touching the same bit of code in his ARMv8.2 > fp16 patch set and thought we should coordinate on this. Thanks, I'll roll them into my series. > > > r~ > > > Richard Henderson (2): > target/arm: Split out vfp_expand_imm > target/arm: Add fp16 support to vfp_expand_imm > > target/arm/translate-a64.c | 49 +++++++++++++++++++++++++++++++--------------- > 1 file changed, 33 insertions(+), 16 deletions(-) -- Alex Bennée ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm 2018-01-10 6:33 [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Richard Henderson ` (2 preceding siblings ...) 2018-01-10 10:11 ` [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Alex Bennée @ 2018-01-12 17:22 ` Peter Maydell 2018-01-12 19:07 ` Richard Henderson 3 siblings, 1 reply; 7+ messages in thread From: Peter Maydell @ 2018-01-12 17:22 UTC (permalink / raw) To: Richard Henderson; +Cc: QEMU Developers, Alex Bennée On 10 January 2018 at 06:33, Richard Henderson <richard.henderson@linaro.org> wrote: > One more piece of target/arm prep work from my SVE branch. > > I saw that Alex was touching the same bit of code in his ARMv8.2 > fp16 patch set and thought we should coordinate on this. > > > r~ > > > Richard Henderson (2): > target/arm: Split out vfp_expand_imm > target/arm: Add fp16 support to vfp_expand_imm > > target/arm/translate-a64.c | 49 +++++++++++++++++++++++++++++++--------------- > 1 file changed, 33 insertions(+), 16 deletions(-) Reviewed-by: Peter Maydell <peter.maydell@linaro.org> I could put these in target-arm.next now if you like ? thanks -- PMM ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm 2018-01-12 17:22 ` Peter Maydell @ 2018-01-12 19:07 ` Richard Henderson 2018-01-15 13:13 ` Peter Maydell 0 siblings, 1 reply; 7+ messages in thread From: Richard Henderson @ 2018-01-12 19:07 UTC (permalink / raw) To: Peter Maydell; +Cc: QEMU Developers, Alex Bennée On 01/12/2018 09:22 AM, Peter Maydell wrote: >> Richard Henderson (2): >> target/arm: Split out vfp_expand_imm >> target/arm: Add fp16 support to vfp_expand_imm >> >> target/arm/translate-a64.c | 49 +++++++++++++++++++++++++++++++--------------- >> 1 file changed, 33 insertions(+), 16 deletions(-) > > Reviewed-by: Peter Maydell <peter.maydell@linaro.org> > > I could put these in target-arm.next now if you like ? Yes, please. r~ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm 2018-01-12 19:07 ` Richard Henderson @ 2018-01-15 13:13 ` Peter Maydell 0 siblings, 0 replies; 7+ messages in thread From: Peter Maydell @ 2018-01-15 13:13 UTC (permalink / raw) To: Richard Henderson; +Cc: QEMU Developers, Alex Bennée On 12 January 2018 at 19:07, Richard Henderson <richard.henderson@linaro.org> wrote: > On 01/12/2018 09:22 AM, Peter Maydell wrote: >>> Richard Henderson (2): >>> target/arm: Split out vfp_expand_imm >>> target/arm: Add fp16 support to vfp_expand_imm >>> >>> target/arm/translate-a64.c | 49 +++++++++++++++++++++++++++++++--------------- >>> 1 file changed, 33 insertions(+), 16 deletions(-) >> >> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> >> >> I could put these in target-arm.next now if you like ? > > Yes, please. OK, done. thanks -- PMM ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-01-15 13:13 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-01-10 6:33 [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 1/2] target/arm: Split " Richard Henderson 2018-01-10 6:33 ` [Qemu-devel] [PATCH 2/2] target/arm: Add fp16 support to vfp_expand_imm Richard Henderson 2018-01-10 10:11 ` [Qemu-devel] [PATCH 0/2] target/arm: split out vfp_expand_imm Alex Bennée 2018-01-12 17:22 ` Peter Maydell 2018-01-12 19:07 ` Richard Henderson 2018-01-15 13:13 ` Peter Maydell
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).