Richard Henderson
638808ff8a
target/arm: Decode aa32 armv8.3 2-reg-index
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-15-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
8b7209fae7
target/arm: Decode aa32 armv8.3 3-same
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Message-id: 20180228193125.20577-14-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
d17b7cdcf4
target/arm: Decode aa64 armv8.3 fcmla
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-13-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
[PMM: renamed e1/e2/e3/e4 to use the same naming as the version
of the pseudocode in the Arm ARM]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
1695cd61b0
target/arm: Decode aa64 armv8.3 fcadd
...
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-12-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
0438f0372a
target/arm: Add ARM_FEATURE_V8_FCMA
...
Not enabled anywhere yet.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-11-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
f5dfc2ecdd
target/arm: Enable ARM_FEATURE_V8_RDM
...
Enable it for the "any" CPU used by *-linux-user.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Message-id: 20180228193125.20577-10-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
61adacc8f5
target/arm: Decode aa32 armv8.1 two reg and a scalar
...
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-9-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
36a719348a
target/arm: Decode aa32 armv8.1 three same
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-8-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
d345df7a3f
target/arm: Decode aa64 armv8.1 scalar/vector x indexed element
...
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-7-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
e7186d8229
target/arm: Decode aa64 armv8.1 three same extra
...
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-6-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
d9061ec3d2
target/arm: Decode aa64 armv8.1 scalar three same extra
...
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-5-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
449f264b17
target/arm: Refactor disas_simd_indexed size checks
...
The integer size check was already outside of the opcode switch;
move the floating-point size check outside as well. Unify the
size vs index adjustment between fp and integer paths.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Message-id: 20180228193125.20577-4-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
5f81b1de43
target/arm: Refactor disas_simd_indexed decode
...
Include the U bit in the switches rather than testing separately.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Message-id: 20180228193125.20577-3-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Richard Henderson
1dc81c1541
target/arm: Add ARM_FEATURE_V8_RDM
...
Not enabled anywhere yet.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180228193125.20577-2-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-02 11:03:45 +00:00
Peter Maydell
c7b26382fe
target/arm: Add Cortex-M33
...
Add a Cortex-M33 definition. The M33 is an M profile CPU
which implements the ARM v8M architecture, including the
M profile Security Extension.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180220180325.29818-9-peter.maydell@linaro.org
2018-03-02 11:03:45 +00:00
Peter Maydell
38e2a77c9d
target/arm: Define init-svtor property for the reset secure VTOR value
...
The Cortex-M33 allows the system to specify the reset value of the
secure Vector Table Offset Register (VTOR) by asserting config
signals. In particular, guest images for the MPS2 AN505 board rely
on the MPS2's initial VTOR being correct for that board.
Implement a QEMU property so board and SoC code can set the reset
value to the correct value.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180220180325.29818-7-peter.maydell@linaro.org
2018-03-02 11:03:45 +00:00
Peter Maydell
181962fd69
target/arm: Define an IDAU interface
...
In v8M, the Implementation Defined Attribution Unit (IDAU) is
a small piece of hardware typically implemented in the SoC
which provides board or SoC specific security attribution
information for each address that the CPU performs MPU/SAU
checks on. For QEMU, we model this with a QOM interface which
is implemented by the board or SoC object and connected to
the CPU using a link property.
This commit defines the new interface class, adds the link
property to the CPU object, and makes the SAU checking
code call the IDAU interface if one is present.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180220180325.29818-5-peter.maydell@linaro.org
2018-03-02 11:03:45 +00:00
David Brenken
ce46335c9f
tricore: renamed masking of PIE
...
Signed-off-by: David Brenken <david.brenken@efs-auto.de >
Signed-off-by: Florian Artmeier <florian.artmeier@efs-auto.de >
Signed-off-by: Georg Hofstetter <georg.hofstetter@efs-auto.de >
Message-Id: <20180301155619.8640-5-david.brenken@efs-auto.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2018-03-02 11:46:36 +01:00
David Brenken
d1cbc28ae1
tricore: renamed masking of IE
...
Signed-off-by: David Brenken <david.brenken@efs-auto.de >
Signed-off-by: Florian Artmeier <florian.artmeier@efs-auto.de >
Signed-off-by: Georg Hofstetter <georg.hofstetter@efs-auto.de >
Message-Id: <20180301155619.8640-4-david.brenken@efs-auto.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2018-03-02 11:46:34 +01:00
David Brenken
04e62411ca
tricore: added CORE_ID
...
Signed-off-by: David Brenken <david.brenken@efs-auto.de >
Signed-off-by: Florian Artmeier <florian.artmeier@efs-auto.de >
Signed-off-by: Georg Hofstetter <georg.hofstetter@efs-auto.de >
Message-Id: <20180301155619.8640-3-david.brenken@efs-auto.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2018-03-02 11:46:31 +01:00
David Brenken
defda2d420
tricore: added some missing cpu instructions
...
Signed-off-by: David Brenken <david.brenken@efs-auto.de >
Signed-off-by: Florian Artmeier <florian.artmeier@efs-auto.de >
Signed-off-by: Georg Hofstetter <georg.hofstetter@efs-auto.de >
Message-Id: <20180301155619.8640-2-david.brenken@efs-auto.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2018-03-02 11:46:23 +01:00
Peter Maydell
0dc8ae5e8e
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180301-v2' into staging
...
- add query-cpus-fast and deprecate query-cpus, while adding s390 cpu
information
- remove s390x memory hotplug implementation, which is not useable in
this form
- add boot menu support in the s390-ccw bios
- expose s390x guest crash information
- fixes and cleaups
# gpg: Signature made Thu 01 Mar 2018 12:54:47 GMT
# gpg: using RSA key DECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de >"
# gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com >"
# gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com >"
# gpg: aka "Cornelia Huck <cohuck@kernel.org >"
# gpg: aka "Cornelia Huck <cohuck@redhat.com >"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF
* remotes/cohuck/tags/s390x-20180301-v2: (27 commits)
s390x/tcg: fix loading 31bit PSWs with the highest bit set
s390x: remove s390_get_memslot_count
s390x/sclp: remove memory hotplug support
s390x/cpumodel: document S390FeatDef.bit not applicable
hmp: change hmp_info_cpus to use query-cpus-fast
qemu-doc: deprecate query-cpus
qmp: add architecture specific cpu data for query-cpus-fast
qmp: add query-cpus-fast
qmp: expose s390-specific CPU info
s390x/tcg: add various alignment checks
s390x/tcg: fix disabling/enabling DAT
s390/stattrib: Make SaveVMHandlers data static
s390x/cpu: expose the guest crash information
pc-bios/s390: Rebuild the s390x firmware images with the boot menu changes
s390-ccw: interactive boot menu for scsi
s390-ccw: use zipl values when no boot menu options are present
s390-ccw: set cp_receive mask only when needed and consume pending service irqs
s390-ccw: read user input for boot index via the SCLP console
s390-ccw: print zipl boot menu
s390-ccw: read stage2 boot loader data to find menu
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 17:08:16 +00:00
David Hildenbrand
be8b49de24
s390x/tcg: fix loading 31bit PSWs with the highest bit set
...
Let's also put the 31-bit hack in front of the REAL MMU, otherwise right
now we get errors when loading a PSW where the highest bit is set (e.g.
via s390-netboot.img). The highest bit is not masked away, therefore we
inject addressing exceptions into the guest.
The proper fix will later be to do all address wrapping before accessing
the MMU - so we won't get any "wrong" entries in there (which makes
flushing also easier). But that will require more work (wrapping in
load_psw, wrapping when incrementing the PC, wrapping every memory
access).
This fixes the tests/pxe-test test.
Signed-off-by: David Hildenbrand <david@redhat.com >
Message-Id: <20180301120826.6847-1-david@redhat.com >
Signed-off-by: Cornelia Huck <cohuck@redhat.com >
2018-03-01 13:23:09 +01:00
Peter Maydell
969b389ee8
target/arm: Enable ARM_V8_FP16 feature bit for the AArch64 "any" CPU
...
Now we have implemented FP16 we can enable it for the "any" CPU.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
[PMM: split out from an earlier patch in the series]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
c2c08713a6
arm/translate-a64: add all single op FP16 to handle_fp_1src_half
...
This includes FMOV, FABS, FNEG, FSQRT and FRINT[NPMZAXI]. We re-use
existing helpers to achieve this.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-32-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
7c93b7741b
arm/translate-a64: implement simd_scalar_three_reg_same_fp16
...
This covers the encoding group:
Advanced SIMD scalar three same FP16
As all the helpers are already there it is simply a case of calling the
existing helpers in the scalar context.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-31-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
5c36d89567
arm/translate-a64: add all FP16 ops in simd_scalar_pairwise
...
I only needed to do a little light re-factoring to support the
half-precision helpers.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-30-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
70b4e6a445
arm/translate-a64: add FP16 FMOV to simd_mod_imm
...
Only one half-precision instruction has been added to this group.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-29-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
c625ff9507
arm/translate-a64: add FP16 FRSQRTE to simd_two_reg_misc_fp16
...
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-28-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
d719cbc764
arm/helper.c: re-factor rsqrte and add rsqrte_f16
...
Much like recpe the ARM ARM has simplified the pseudo code for the
calculation which is done on a fixed point 9 bit integer maths. So
while adding f16 we can also clean this up to be a little less heavy
on the floating point and just return the fractional part and leave
the calle's to do the final packing of the result.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-27-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
b96a54c7e5
arm/translate-a64: add FP16 FSQRT to simd_two_reg_misc_fp16
...
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-26-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
9869502838
arm/translate-a64: add FP16 FRCPX to simd_two_reg_misc_fp16
...
We go with the localised helper.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-25-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
fbd06e1e4b
arm/translate-a64: add FP16 FRECPE
...
Now we have added f16 during the re-factoring we can simply call the
helper.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-24-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
5eb70735af
arm/helper.c: re-factor recpe and add recepe_f16
...
It looks like the ARM ARM has simplified the pseudo code for the
calculation which is done on a fixed point 9 bit integer maths. So
while adding f16 we can also clean this up to be a little less heavy
on the floating point and just return the fractional part and leave
the calle's to do the final packing of the result.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-23-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
15f8a233c8
arm/translate-a64: add FP16 FNEG/FABS to simd_two_reg_misc_fp16
...
Neither of these operations alter the floating point status registers
so we can do a pure bitwise operation, either squashing any sign
bit (ABS) or inverting it (NEG).
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-22-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
931931904c
arm/translate-a64: add FP16 SCVTF/UCVFT to simd_two_reg_misc_fp16
...
I've re-factored the handle_simd_intfp_conv helper to properly handle
half-precision as well as call plain conversion helpers when we are
not doing fixed point conversion.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-21-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
7d4dd1a73a
arm/translate-a64: add FP16 FCMxx (zero) to simd_two_reg_misc_fp16
...
I re-use the existing handle_2misc_fcmp_zero handler and tweak it
slightly to deal with the half-precision case.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-20-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
2df5813041
arm/translate-a64: add FCVTxx to simd_two_reg_misc_fp16
...
This covers all the floating point convert operations.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-19-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
6109aea2d9
arm/translate-a64: add FP16 FPRINTx to simd_two_reg_misc_fp16
...
This adds the full range of half-precision floating point to integral
instructions.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-18-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
5d432be6fd
arm/translate-a64: initial decode for simd_two_reg_misc_fp16
...
This actually covers two different sections of the encoding table:
Advanced SIMD scalar two-register miscellaneous FP16
Advanced SIMD two-register miscellaneous (FP16)
The difference between the two is covered by a combination of Q (bit
30) and S (bit 28). Notably the FRINTx instructions are only
available in the vector form.
This is just the decode skeleton which will be filled out by later
patches.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-17-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
6089030c73
arm/translate-a64: add FP16 x2 ops for simd_indexed
...
A bunch of the vectorised bitwise operations just operate on larger
chunks at a time. We can do the same for the new half-precision
operations by introducing some TWOHALFOP helpers which work on each
half of a pair of half-precision operations at once.
Hopefully all this hoop jumping will get simpler once we have
generically vectorised helpers here.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-16-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
5d265064cf
arm/translate-a64: add FP16 FMULX/MLS/FMLA to simd_indexed
...
The helpers use the new re-factored muladd support in SoftFloat for
the float16 work.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-id: 20180227143852.11175-15-alex.bennee@linaro.org
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
7a2c6e6181
arm/translate-a64: add FP16 pairwise ops simd_three_reg_same_fp16
...
This includes FMAXNMP, FADDP, FMAXP, FMINNMP, FMINP.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-14-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
026e2d6ef7
arm/translate-a64: add FP16 FR[ECP/SQRT]S to simd_three_reg_same_fp16
...
As some of the constants here will also be needed
elsewhere (specifically for the upcoming SVE support) we move them out
to softfloat.h.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-13-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
2deb992b76
arm/translate-a64: add FP16 FMULA/X/S to simd_three_reg_same_fp16
...
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-12-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
d32adeae1a
arm/translate-a64: add FP16 F[A]C[EQ/GE/GT] to simd_three_reg_same_fp16
...
These use the generic float16_compare functionality which in turn uses
the common float_compare code from the softfloat re-factor.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-11-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
372087348d
arm/translate-a64: add FP16 FADD/FABD/FSUB/FMUL/FDIV to simd_three_reg_same_fp16
...
The fprintf is only there for debugging as the skeleton is added to,
it will be removed once the skeleton is complete.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-10-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
376e8d6cda
arm/translate-a64: initial decode for simd_three_reg_same_fp16
...
This is the initial decode skeleton for the Advanced SIMD three same
instruction group.
The fprintf is purely to aid debugging as the additional instructions
are added. It will be removed once the group is complete.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-9-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
3840d219b4
arm/translate-a64: handle_3same_64 comment fix
...
We do implement all the opcodes.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-8-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00
Alex Bennée
807cdd5042
arm/translate-a64: implement half-precision F(MIN|MAX)(V|NMV)
...
This implements the half-precision variants of the across vector
reduction operations. This involves a re-factor of the reduction code
which more closely matches the ARM ARM order (and handles 8 element
reductions).
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180227143852.11175-7-alex.bennee@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-03-01 11:13:59 +00:00