Philippe Mathieu-Daudé
adbf1be325
target/mips: Make CPU/FPU regnames[] arrays global
...
The CPU/FPU regnames[] arrays is used in mips_tcg_init() and
mips_cpu_dump_state(), which while being in translate.c is
not specific to TCG.
To be able to move mips_cpu_dump_state() to cpu.c, which is
compiled for all accelerator, we need to make the regnames[]
arrays global to target/mips/ by declaring them in "internal.h".
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210428170410.479308-5-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
fed50ffd5c
target/mips: Move msa_reset() to new source file
...
mips_cpu_reset() is used by all accelerators, and calls
msa_reset(), which is defined in msa_helper.c.
Beside msa_reset(), the rest of msa_helper.c is only useful
to the TCG accelerator. To be able to restrict this helper
file to TCG, we need to move msa_reset() out of it.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210428170410.479308-4-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
830a72301c
target/mips: Move IEEE rounding mode array to new source file
...
restore_msa_fp_status() is declared inlined in fpu_helper.h,
and uses the ieee_rm[] array. Therefore any code calling
restore_msa_fp_status() must have access to this ieee_rm[] array.
kvm_mips_get_fpu_registers(), which is in target/mips/kvm.c,
calls restore_msa_fp_status.
Except this tiny array, the rest of fpu_helper.c is only useful
for the TCG accelerator.
To be able to restrict fpu_helper.c to TCG, we need to move the
ieee_rm[] array to a new source file.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210428170410.479308-3-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
58ecf15d76
target/mips: Simplify meson TCG rules
...
We already have the mips_tcg_ss source set for TCG-specific files,
use it for mxu_translate.c and tx79_translate.c to simplify a bit.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210428170410.479308-2-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
905bdf72a6
target/mips: Make check_cp0_enabled() return a boolean
...
To avoid callers to emit dead code if check_cp0_enabled()
raise an exception, let it return a boolean value, whether
CP0 is enabled or not.
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210420193453.1913810-4-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
df44e81703
target/mips: Migrate missing CPU fields
...
Add various missing fields to the CPU migration vmstate:
- CP0_VPControl & CP0_GlobalNumber (01bc435b44 2016-02-03)
- CMGCRBase (c870e3f52c 2016-03-15)
- CP0_ErrCtl (0d74a222c2 2016-03-25)
- MXU GPR[] & CR (eb5559f67d 2018-10-18)
- R5900 128-bit upper half (a168a796e1 2019-01-17)
This is a migration break.
Fixes: 01bc435b44 ("target-mips: implement R6 multi-threading")
Fixes: c870e3f52c ("target-mips: add CMGCRBase register")
Fixes: 0d74a222c2 ("target-mips: make ITC Configuration Tags accessible to the CPU")
Fixes: eb5559f67d ("target/mips: Introduce MXU registers")
Fixes: a168a796e1 ("target/mips: Introduce 32 R5900 multimedia registers")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Acked-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210423220044.3004195-1-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
bc2eb5ea1b
target/mips: Remove spurious LOG_UNIMP of MTHC0 opcode
...
When running with '-d unimp' all MTHC0 opcode executed
are logged as unimplemented... Add the proper 'return'
statement missed from commit 5204ea79ea .
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210422081055.2349216-1-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
298d43c96b
target/mips: Add missing CP0 check to nanoMIPS RDPGPR / WRPGPR opcodes
...
Per the nanoMIPS32 Instruction Set Technical Reference Manual,
Revision 01.01, Chapter 3. "Instruction Definitions":
The Read/Write Previous GPR opcodes "require CP0 privilege".
Add the missing CP0 checks.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210421185007.2231855-1-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
84c2fdc397
target/mips: Fix CACHEE opcode (CACHE using EVA addressing)
...
The CACHEE opcode "requires CP0 privilege".
The pseudocode checks in the ISA manual is:
if is_eva and not C0.Config5.EVA:
raise exception('RI')
if not IsCoprocessor0Enabled():
raise coprocessor_exception(0)
Add the missing checks.
Inspired-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210420175426.1875746-1-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Philippe Mathieu-Daudé
bcad139192
hw/isa/piix4: Use qdev_get_gpio_in_named() to get ISA IRQ
...
Since commit 078778c5a5 ("piix4: Add an i8259 Interrupt Controller")
the TYPE_PIIX4_PCI_DEVICE exposes the ISA input IRQs as "isa" alias.
Use this alias to get IRQ for the power management PCI function.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210324182902.692419-1-f4bug@amsat.org >
2021-05-02 16:49:34 +02:00
Peter Maydell
53c5433e84
Merge remote-tracking branch 'remotes/rth-gitlab/tags/pull-tcg-20210501' into staging
...
Include cleanups.
Decodetree enhancements for power10.
# gpg: Signature made Sat 01 May 2021 19:50:22 BST
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org "
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org >" [full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F
* remotes/rth-gitlab/tags/pull-tcg-20210501:
decodetree: Extend argument set syntax to allow types
decodetree: Add support for 64-bit instructions
decodetree: More use of f-strings
decodetree: Introduce whex and whexC helpers
exec: Remove accel/tcg/ from include paths
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2021-05-02 12:02:46 +01:00
Taylor Simpson
e628c0156b
Hexagon (target/hexagon) CABAC decode bin
...
The following instruction is added
S2_cabacdecbin Rdd32=decbin(Rss32,Rtt32)
Test cases added to tests/tcg/hexagon/misc.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-27-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 16:06:11 -07:00
Taylor Simpson
7aa9ffab79
Hexagon (target/hexagon) load into shifted register instructions
...
The following instructions are added
L2_loadalignb_io Ryy32 = memb_fifo(Rs32+#s11:1)
L2_loadalignh_io Ryy32 = memh_fifo(Rs32+#s11:1)
L4_loadalignb_ur Ryy32 = memb_fifo(Rt32<<#u2+#U6)
L4_loadalignh_ur Ryy32 = memh_fifo(Rt32<<#u2+#U6)
L4_loadalignb_ap Ryy32 = memb_fifo(Re32=#U6)
L4_loadalignh_ap Ryy32 = memh_fifo(Re32=#U6)
L2_loadalignb_pr Ryy32 = memb_fifo(Rx32++Mu2)
L2_loadalignh_pr Ryy32 = memh_fifo(Rx32++Mu2)
L2_loadalignb_pbr Ryy32 = memb_fifo(Rx32++Mu2:brev)
L2_loadalignh_pbr Ryy32 = memh_fifo(Rx32++Mu2:brev)
L2_loadalignb_pi Ryy32 = memb_fifo(Rx32++#s4:1)
L2_loadalignh_pi Ryy32 = memh_fifo(Rx32++#s4:1)
L2_loadalignb_pci Ryy32 = memb_fifo(Rx32++#s4:1:circ(Mu2))
L2_loadalignh_pci Ryy32 = memh_fifo(Rx32++#s4:1:circ(Mu2))
L2_loadalignb_pcr Ryy32 = memb_fifo(Rx32++I:circ(Mu2))
L2_loadalignh_pcr Ryy32 = memh_fifo(Rx32++I:circ(Mu2))
Test cases in tests/tcg/hexagon/load_align.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-26-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 16:06:11 -07:00
Taylor Simpson
0d0b91a804
Hexagon (target/hexagon) load and unpack bytes instructions
...
The following instructions are added
L2_loadbzw2_io Rd32 = memubh(Rs32+#s11:1)
L2_loadbzw4_io Rdd32 = memubh(Rs32+#s11:1)
L2_loadbsw2_io Rd32 = membh(Rs32+#s11:1)
L2_loadbsw4_io Rdd32 = membh(Rs32+#s11:1)
L4_loadbzw2_ur Rd32 = memubh(Rt32<<#u2+#U6)
L4_loadbzw4_ur Rdd32 = memubh(Rt32<<#u2+#U6)
L4_loadbsw2_ur Rd32 = membh(Rt32<<#u2+#U6)
L4_loadbsw4_ur Rdd32 = membh(Rt32<<#u2+#U6)
L4_loadbzw2_ap Rd32 = memubh(Re32=#U6)
L4_loadbzw4_ap Rdd32 = memubh(Re32=#U6)
L4_loadbsw2_ap Rd32 = membh(Re32=#U6)
L4_loadbsw4_ap Rdd32 = membh(Re32=#U6)
L2_loadbzw2_pr Rd32 = memubh(Rx32++Mu2)
L2_loadbzw4_pr Rdd32 = memubh(Rx32++Mu2)
L2_loadbsw2_pr Rd32 = membh(Rx32++Mu2)
L2_loadbsw4_pr Rdd32 = membh(Rx32++Mu2)
L2_loadbzw2_pbr Rd32 = memubh(Rx32++Mu2:brev)
L2_loadbzw4_pbr Rdd32 = memubh(Rx32++Mu2:brev)
L2_loadbsw2_pbr Rd32 = membh(Rx32++Mu2:brev)
L2_loadbsw4_pbr Rdd32 = membh(Rx32++Mu2:brev)
L2_loadbzw2_pi Rd32 = memubh(Rx32++#s4:1)
L2_loadbzw4_pi Rdd32 = memubh(Rx32++#s4:1)
L2_loadbsw2_pi Rd32 = membh(Rx32++#s4:1)
L2_loadbsw4_pi Rdd32 = membh(Rx32++#s4:1)
L2_loadbzw2_pci Rd32 = memubh(Rx32++#s4:1:circ(Mu2))
L2_loadbzw4_pci Rdd32 = memubh(Rx32++#s4:1:circ(Mu2))
L2_loadbsw2_pci Rd32 = membh(Rx32++#s4:1:circ(Mu2))
L2_loadbsw4_pci Rdd32 = membh(Rx32++#s4:1:circ(Mu2))
L2_loadbzw2_pcr Rd32 = memubh(Rx32++I:circ(Mu2))
L2_loadbzw4_pcr Rdd32 = memubh(Rx32++I:circ(Mu2))
L2_loadbsw2_pcr Rd32 = membh(Rx32++I:circ(Mu2))
L2_loadbsw4_pcr Rdd32 = membh(Rx32++I:circ(Mu2))
Test cases in tests/tcg/hexagon/load_unpack.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-25-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 16:06:09 -07:00
Taylor Simpson
af7f182127
Hexagon (target/hexagon) bit reverse (brev) addressing
...
The following instructions are added
L2_loadrub_pbr Rd32 = memub(Rx32++Mu2:brev)
L2_loadrb_pbr Rd32 = memb(Rx32++Mu2:brev)
L2_loadruh_pbr Rd32 = memuh(Rx32++Mu2:brev)
L2_loadrh_pbr Rd32 = memh(Rx32++Mu2:brev)
L2_loadri_pbr Rd32 = memw(Rx32++Mu2:brev)
L2_loadrd_pbr Rdd32 = memd(Rx32++Mu2:brev)
S2_storerb_pbr memb(Rx32++Mu2:brev).=.Rt32
S2_storerh_pbr memh(Rx32++Mu2:brev).=.Rt32
S2_storerf_pbr memh(Rx32++Mu2:brev).=.Rt.H32
S2_storeri_pbr memw(Rx32++Mu2:brev).=.Rt32
S2_storerd_pbr memd(Rx32++Mu2:brev).=.Rt32
S2_storerinew_pbr memw(Rx32++Mu2:brev).=.Nt8.new
S2_storerbnew_pbr memw(Rx32++Mu2:brev).=.Nt8.new
S2_storerhnew_pbr memw(Rx32++Mu2:brev).=.Nt8.new
Test cases in tests/tcg/hexagon/brev.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-24-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 16:03:10 -07:00
Taylor Simpson
46ef47e2a7
Hexagon (target/hexagon) circular addressing
...
The following instructions are added
L2_loadrub_pci Rd32 = memub(Rx32++#s4:0:circ(Mu2))
L2_loadrb_pci Rd32 = memb(Rx32++#s4:0:circ(Mu2))
L2_loadruh_pci Rd32 = memuh(Rx32++#s4:1:circ(Mu2))
L2_loadrh_pci Rd32 = memh(Rx32++#s4:1:circ(Mu2))
L2_loadri_pci Rd32 = memw(Rx32++#s4:2:circ(Mu2))
L2_loadrd_pci Rdd32 = memd(Rx32++#s4:3:circ(Mu2))
S2_storerb_pci memb(Rx32++#s4:0:circ(Mu2)) = Rt32
S2_storerh_pci memh(Rx32++#s4:1:circ(Mu2)) = Rt32
S2_storerf_pci memh(Rx32++#s4:1:circ(Mu2)) = Rt.H32
S2_storeri_pci memw(Rx32++#s4:2:circ(Mu2)) = Rt32
S2_storerd_pci memd(Rx32++#s4:3:circ(Mu2)) = Rtt32
S2_storerbnew_pci memb(Rx32++#s4:0:circ(Mu2)) = Nt8.new
S2_storerhnew_pci memw(Rx32++#s4:1:circ(Mu2)) = Nt8.new
S2_storerinew_pci memw(Rx32++#s4:2:circ(Mu2)) = Nt8.new
L2_loadrub_pcr Rd32 = memub(Rx32++I:circ(Mu2))
L2_loadrb_pcr Rd32 = memb(Rx32++I:circ(Mu2))
L2_loadruh_pcr Rd32 = memuh(Rx32++I:circ(Mu2))
L2_loadrh_pcr Rd32 = memh(Rx32++I:circ(Mu2))
L2_loadri_pcr Rd32 = memw(Rx32++I:circ(Mu2))
L2_loadrd_pcr Rdd32 = memd(Rx32++I:circ(Mu2))
S2_storerb_pcr memb(Rx32++I:circ(Mu2)) = Rt32
S2_storerh_pcr memh(Rx32++I:circ(Mu2)) = Rt32
S2_storerf_pcr memh(Rx32++I:circ(Mu2)) = Rt32.H32
S2_storeri_pcr memw(Rx32++I:circ(Mu2)) = Rt32
S2_storerd_pcr memd(Rx32++I:circ(Mu2)) = Rtt32
S2_storerbnew_pcr memb(Rx32++I:circ(Mu2)) = Nt8.new
S2_storerhnew_pcr memh(Rx32++I:circ(Mu2)) = Nt8.new
S2_storerinew_pcr memw(Rx32++I:circ(Mu2)) = Nt8.new
Test cases in tests/tcg/hexagon/circ.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-23-git-send-email-tsimpson@quicinc.com >
[rth: Squash <1619667142-29636-1-git-send-email-tsimpson@quicinc.com >
removing gen_read_reg and gen_set_byte to avoid clang Werror.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 16:01:39 -07:00
Richard Henderson
af93ccacc7
decodetree: Extend argument set syntax to allow types
...
Rather than force all structure members to be 'int',
allow the type of the member to be specified.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 11:45:35 -07:00
Luis Fernando Fujita Pires
60c425f328
decodetree: Add support for 64-bit instructions
...
Allow '64' to be specified for the instruction width command line params
and use the appropriate extract and deposit functions in that case.
This will be used to implement the new 64-bit Power ISA 3.1 instructions.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Luis Pires <luis.pires@eldorado.org.br >
Message-Id: <CP2PR80MB3668E123E2EFDB0ACD3A46F1DA759@CP2PR80MB3668.lamprd80.prod.outlook.com >
[rth: Drop the change to the field type; use bitop_width instead of separate
variables for extract/deposit; use "ull" for 64-bit constants.]
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 11:45:19 -07:00
Richard Henderson
9f6e2b4d34
decodetree: More use of f-strings
...
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 11:45:02 -07:00
Richard Henderson
c7cefe6c66
decodetree: Introduce whex and whexC helpers
...
Form a hex constant of the appropriate insnwidth.
Begin using f-strings on changed lines.
Reviewed-by: Luis Pires <luis.pires@eldorado.org.br >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 11:44:56 -07:00
Philippe Mathieu-Daudé
db647703ba
exec: Remove accel/tcg/ from include paths
...
When TCG is enabled, the accel/tcg/ include path is added to the
project global include search list. This accel/tcg/ directory
contains a header named "internal.h" which, while intented to
be internal to accel/tcg/, is accessible by all files compiled
when TCG is enabled. This might lead to problem with other
directories using the same "internal.h" header name:
$ git ls-files | fgrep /internal.h
accel/tcg/internal.h
include/hw/ide/internal.h
target/hexagon/internal.h
target/mips/internal.h
target/ppc/internal.h
target/s390x/internal.h
As we don't need to expose accel/tcg/ internals to the rest of
the code base, simplify by removing it from the include search
list, and include the accel/tcg/ public headers relative to the
project root search path (which is already in the generic include
search path).
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Claudio Fontana <cfontana@suse.de >
Message-Id: <20210413081008.3409459-1-f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 11:44:13 -07:00
Taylor Simpson
57d352ac29
Hexagon (target/hexagon) add A4_addp_c/A4_subp_c
...
Rdd32 = add(Rss32, Rtt32, Px4):carry
Add with carry
Rdd32 = sub(Rss32, Rtt32, Px4):carry
Sub with carry
Test cases in tests/tcg/hexagon/multi_result.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-22-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
0a65d28693
Hexagon (target/hexagon) add A6_vminub_RdP
...
Rdd32,Pe4 = vminub(Rtt32, Rss32)
Vector min of bytes
Test cases in tests/tcg/hexagon/multi_result.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-21-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
da74cd2dce
Hexagon (target/hexagon) add A5_ACS (vacsh)
...
Rxx32,Pe4 = vacsh(Rss32, Rtt32)
Add compare and select elements of two vectors
Test cases in tests/tcg/hexagon/multi_result.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-20-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
dd8705bdf5
Hexagon (target/hexagon) add F2_sfinvsqrta
...
Rd32,Pe4 = sfinvsqrta(Rs32)
Square root approx
The helper packs the 2 32-bit results into a 64-bit value,
and the fGEN_TCG override unpacks them into the proper results.
Test cases in tests/tcg/hexagon/multi_result.c
FP exception tests added to tests/tcg/hexagon/fpstuff.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-19-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
d934c16d8a
Hexagon (target/hexagon) add F2_sfrecipa instruction
...
Rd32,Pe4 = sfrecipa(Rs32, Rt32)
Recripocal approx
Test cases in tests/tcg/hexagon/multi_result.c
FP exception tests added to tests/tcg/hexagon/fpstuff.c
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-18-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
85580a6557
Hexagon (target/hexagon) compile all debug code
...
Change #if HEX_DEBUG to if (HEX_DEBUG) so the debug code doesn't bit rot
Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-17-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
a33872eb53
Hexagon (target/hexagon) move QEMU_GENERATE to only be on during macros.h
...
Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-16-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
80be682844
Hexagon (target/hexagon) cleanup reg_field_info definition
...
Include size in declaration
Remove {0, 0} entry
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-15-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
9fe33c0e70
Hexagon (target/hexagon) cleanup ternary operators in semantics
...
Change (cond ? (res = x) : (res = y)) to res = (cond ? x : y)
This makes the semnatics easier to for idef-parser to deal with
The following instructions are impacted
C2_any8
C2_all8
C2_mux
C2_muxii
C2_muxir
C2_muxri
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-14-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
b3f37abdd3
Hexagon (target/hexagon) use softfloat for float-to-int conversions
...
Use the proper return for helpers that convert to unsigned
Remove target/hexagon/conv_emu.[ch]
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-13-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
1cb532fe45
Hexagon (target/hexagon) replace float32_mul_pow2 with float32_scalbn
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-12-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
c0336c87b7
Hexagon (target/hexagon) use softfloat default NaN and tininess
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-11-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
8c36752435
Hexagon (target/hexagon) change type of softfloat_roundingmodes
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-10-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
85511161f7
Hexagon (target/hexagon) remove unused carry_from_add64 function
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-9-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
92cfa25fd2
Hexagon (target/hexagon) change variables from int to bool when appropriate
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-8-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
6c677c60ae
Hexagon (target/hexagon) decide if pred has been written at TCG gen time
...
Multiple writes to the same preg are and'ed together. Rather than
generating a runtime check, we can determine at TCG generation time
if the predicate has previously been written in the packet.
Test added to tests/tcg/hexagon/misc.c
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-7-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
743debbc37
Hexagon (target/hexagon) properly generate TB end for DISAS_NORETURN
...
When exiting a TB, generate all the code before returning from
hexagon_tr_translate_packet so that nothing needs to be done in
hexagon_tr_tb_stop.
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-6-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
7d9ab2021f
Hexagon (target/hexagon) use env_archcpu and env_cpu
...
Remove hexagon_env_get_cpu and replace with env_archcpu
Replace CPU(hexagon_env_get_cpu(env)) with env_cpu(env)
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-5-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
2d27cebbf8
Hexagon (target/hexagon) remove unnecessary inline directives
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-4-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
edf26ade43
Hexagon (target/hexagon) cleanup gen_log_predicated_reg_write_pair
...
Similar to previous cleanup of gen_log_predicated_reg_write
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-3-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
d799f8ad08
Hexagon (target/hexagon) TCG generation cleanup
...
Simplify TCG generation of hex_reg_written
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1617930474-31979-2-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
5f261764ce
target/hexagon: remove unnecessary semicolons
...
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reported-by: Richard Henderson <<richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Message-Id: <1615784100-26459-1-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
d9099caf04
target/hexagon: fix typo in comment
...
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Message-Id: <1615784115-26559-1-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:43 -07:00
Taylor Simpson
1de468b398
target/hexagon: Change DECODE_MAPPED_REG operand name to OPNUM
...
Reported-by: Richard Henderson <<richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Message-Id: <1615784049-26215-1-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:42 -07:00
Taylor Simpson
4c82c2b433
target/hexagon: remove unnecessary checks in find_iclass_slots
...
Reported-by: Richard Henderson <<richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Message-Id: <1615784037-26129-1-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:42 -07:00
Taylor Simpson
a27c100c23
target/hexagon: translation changes
...
Change cpu_ldl_code to translator_ldl.
Don't end the TB after every packet when HEX_DEBUG is on.
Make gen_check_store_width a simple call.
Reported-by: Richard Henderson <<richard.henderson@linaro.org >
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com >
Message-Id: <1615783984-25918-1-git-send-email-tsimpson@quicinc.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2021-05-01 08:31:42 -07:00
Patrick Venture
9cccb912cf
aspeed: Add support for the quanta-q7l1-bmc board
...
The Quanta-Q71l BMC board is a board supported by OpenBMC.
Tested: Booted quanta-q71l firmware.
Signed-off-by: Patrick Venture <venture@google.com >
Reviewed-by: Hao Wu <wuhaotsh@google.com >
Reviewed-by: Cédric Le Goater <clg@kaod.org >
Message-Id: <20210416162426.3217033-1-venture@google.com >
Signed-off-by: Cédric Le Goater <clg@kaod.org >
2021-05-01 10:03:52 +02:00
Cédric Le Goater
d24aa3241a
hw/block: m25p80: Add support for mt25ql02g and mt25qu02g
...
The Micron mt25ql02g is a 3V 2Gb serial NOR flash memory supporting
dual I/O and quad I/O, 4KB, 32KB, 64KB sector erase. It also supports
4B opcodes. The mt25qu02g operates at 1.8V.
https://4donline.ihs.com/images/VipMasterIC/IC/MICT/MICT-S-A0008500026/MICT-S-A0008511423-1.pdf?hkey=52A5661711E402568146F3353EA87419
Cc: Alistair Francis <alistair.francis@wdc.com >
Cc: Francisco Iglesias <francisco.iglesias@xilinx.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Francisco Iglesias <francisco.iglesias@xilinx.com >
Signed-off-by: Cédric Le Goater <clg@kaod.org >
2021-05-01 10:03:52 +02:00
Cédric Le Goater
58e52bdb87
aspeed: Add support for the rainier-bmc board
...
The Rainier BMC board is a board for the middle range POWER10 IBM systems.
Signed-off-by: Cédric Le Goater <clg@kaod.org >
Reviewed-by: Joel Stanley <joel@jms.id.au >
Message-Id: <20210407171637.777743-19-clg@kaod.org >
Signed-off-by: Cédric Le Goater <clg@kaod.org >
2021-05-01 10:03:52 +02:00