#
ad75a51e |
| 13-Sep-2023 |
Richard Henderson <richard.henderson@linaro.org> |
tcg: Rename cpu_env to tcg_env
Allow the name 'cpu_env' to be used for something else.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@li
tcg: Rename cpu_env to tcg_env
Allow the name 'cpu_env' to be used for something else.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
673d8215 |
| 14-Jul-2023 |
Michael Tokarev <mjt@tls.msk.ru> |
arm: spelling fixes
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
|
#
5d05e5a1 |
| 02-Apr-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Tidy helpers for translation
Move most includes from *translate*.c to translate.h, ensuring that we get the ordering correct. Ensure cpu.h is first. Use disas/disas.h instead of exec/lo
target/arm: Tidy helpers for translation
Move most includes from *translate*.c to translate.h, ensuring that we get the ordering correct. Ensure cpu.h is first. Use disas/disas.h instead of exec/log.h. Drop otherwise unused includes.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
dfd1b812 |
| 23-May-2023 |
Richard Henderson <richard.henderson@linaro.org> |
accel/tcg: Introduce translator_io_start
New wrapper around gen_io_start which takes care of the USE_ICOUNT check, as well as marking the DisasContext to end the TB. Remove exec/gen-icount.h.
Revie
accel/tcg: Introduce translator_io_start
New wrapper around gen_io_start which takes care of the USE_ICOUNT check, as well as marking the DisasContext to end the TB. Remove exec/gen-icount.h.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
063e6e45 |
| 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Avoid tcg_const_* in translate-mve.c
All uses are in the context of an accumulator conditionally having a zero input. Split the rda variable to rda_{i,o}, and set rda_i to tcg_constant_
target/arm: Avoid tcg_const_* in translate-mve.c
All uses are in the context of an accumulator conditionally having a zero input. Split the rda variable to rda_{i,o}, and set rda_i to tcg_constant_foo(0) when required.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
6ce21abd |
| 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Improve arm_rmode_to_sf
Use proper enumeration types for input and output. Use a const array to perform the mapping, with an assert that the input is valid.
Reviewed-by: Philippe Mathie
target/arm: Improve arm_rmode_to_sf
Use proper enumeration types for input and output. Use a const array to perform the mapping, with an assert that the input is valid.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
02404d8b |
| 25-Feb-2023 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Drop tcg_temp_free from translator-mve.c
Translators are no longer required to free tcg temporaries.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henders
target/arm: Drop tcg_temp_free from translator-mve.c
Translators are no longer required to free tcg temporaries.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
f0984d40 |
| 17-Feb-2023 |
Fabiano Rosas <farosas@suse.de> |
target/arm: move translate modules to tcg/
Introduce the target/arm/tcg directory. Its purpose is to hold the TCG code that is selected by CONFIG_TCG.
Signed-off-by: Claudio Fontana <cfontana@suse.
target/arm: move translate modules to tcg/
Introduce the target/arm/tcg directory. Its purpose is to hold the TCG code that is selected by CONFIG_TCG.
Signed-off-by: Claudio Fontana <cfontana@suse.de> Signed-off-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
55086e62 |
| 20-Oct-2022 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Change gen_exception_insn* to work on displacements
In preparation for TARGET_TB_PCREL, reduce reliance on absolute values.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-
target/arm: Change gen_exception_insn* to work on displacements
In preparation for TARGET_TB_PCREL, reduce reliance on absolute values.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20221020030641.2066807-5-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
486d6c96 |
| 10-Jun-2022 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Introduce gen_exception_insn
Create a new wrapper function that passes the default exception target to gen_exception_insn_el.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signe
target/arm: Introduce gen_exception_insn
Create a new wrapper function that passes the default exception target to gen_exception_insn_el.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220609202901.1177572-13-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
8c5d24dc |
| 10-Jun-2022 |
Richard Henderson <richard.henderson@linaro.org> |
target/arm: Rename gen_exception_insn to gen_exception_insn_el
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220
target/arm: Rename gen_exception_insn to gen_exception_insn_el
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220609202901.1177572-12-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
4b445c92 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE 1op-immediate insns
Optimize the MVE 1op-immediate insns (VORR, VBIC, VMOV) to use TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Rev
target/arm: Optimize MVE 1op-immediate insns
Optimize the MVE 1op-immediate insns (VORR, VBIC, VMOV) to use TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-13-peter.maydell@linaro.org
show more ...
|
#
ce75c43f |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE VSLI and VSRI
Optimize the MVE shift-and-insert insns by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard He
target/arm: Optimize MVE VSLI and VSRI
Optimize the MVE shift-and-insert insns by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-12-peter.maydell@linaro.org
show more ...
|
#
a7789fab |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE VSHLL and VMOVL
Optimize the MVE VSHLL insns by using TCG vector ops when possible. This includes the VMOVL insn, which we handle in mve.decode as "VSHLL with zero shift cou
target/arm: Optimize MVE VSHLL and VMOVL
Optimize the MVE VSHLL insns by using TCG vector ops when possible. This includes the VMOVL insn, which we handle in mve.decode as "VSHLL with zero shift count".
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-11-peter.maydell@linaro.org
show more ...
|
#
752970ef |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE VSHL, VSHR immediate forms
Optimize the MVE VSHL and VSHR immediate forms by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Rev
target/arm: Optimize MVE VSHL, VSHR immediate forms
Optimize the MVE VSHL and VSHR immediate forms by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-10-peter.maydell@linaro.org
show more ...
|
#
5cf525a8 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE VMVN
Optimize the MVE VMVN insn by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.hende
target/arm: Optimize MVE VMVN
Optimize the MVE VMVN insn by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-9-peter.maydell@linaro.org
show more ...
|
#
f8d94803 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE VDUP
Optimize the MVE VDUP insns by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.hend
target/arm: Optimize MVE VDUP
Optimize the MVE VDUP insns by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-8-peter.maydell@linaro.org
show more ...
|
#
4b1561c4 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE VNEG, VABS
Optimize the MVE VNEG and VABS insns by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu
target/arm: Optimize MVE VNEG, VABS
Optimize the MVE VNEG and VABS insns by using TCG vector ops when possible.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-7-peter.maydell@linaro.org
show more ...
|
#
bc3087f2 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE arithmetic ops
Optimize MVE arithmetic ops when we have a TCG vector operation we can use.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mat
target/arm: Optimize MVE arithmetic ops
Optimize MVE arithmetic ops when we have a TCG vector operation we can use.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-6-peter.maydell@linaro.org
show more ...
|
#
451f9d66 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Optimize MVE logic ops
When not predicating, implement the MVE bitwise logical insns directly using TCG vector operations.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Review
target/arm: Optimize MVE logic ops
When not predicating, implement the MVE bitwise logical insns directly using TCG vector operations.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-5-peter.maydell@linaro.org
show more ...
|
#
26702213 |
| 13-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Add TB flag for "MVE insns not predicated"
Our current codegen for MVE always calls out to helper functions, because some byte lanes might be predicated. The common case is that in fact
target/arm: Add TB flag for "MVE insns not predicated"
Our current codegen for MVE always calls out to helper functions, because some byte lanes might be predicated. The common case is that in fact there is no predication active and all lanes should be updated together, so we can produce better code by detecting that and using the TCG generic vector infrastructure.
Add a TB flag that is set when we can guarantee that there is no active MVE predication, and a bool in the DisasContext. Subsequent patches will use this flag to generate improved code for some instructions.
In most cases when the predication state changes we simply end the TB after that instruction. For the code called from vfp_access_check() that handles lazy state preservation and creating a new FP context, we can usually avoid having to try to end the TB because luckily the new value of the flag following the register changes in those sequences doesn't depend on any runtime decisions. We do have to end the TB if the guest has enabled lazy FP state preservation but not automatic state preservation, but this is an odd corner case that is not going to be common in real-world code.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210913095440.13462-4-peter.maydell@linaro.org
show more ...
|
#
98e40fbd |
| 01-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VRINT insns
Implement the MVE VRINT insns, which round floating point inputs to integer values, leaving them in floating point format.
Signed-off-by: Peter Maydell <peter.
target/arm: Implement MVE VRINT insns
Implement the MVE VRINT insns, which round floating point inputs to integer values, leaving them in floating point format.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
73d260db |
| 01-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VCVT between single and half precision
Implement the MVE VCVT instruction which converts between single and half precision floating point.
Signed-off-by: Peter Maydell <pe
target/arm: Implement MVE VCVT between single and half precision
Implement the MVE VCVT instruction which converts between single and half precision floating point.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
53fc5f61 |
| 01-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VCVT with specified rounding mode
Implement the MVE VCVT which converts from floating-point to integer using a rounding mode specified by the instruction. We implement thi
target/arm: Implement MVE VCVT with specified rounding mode
Implement the MVE VCVT which converts from floating-point to integer using a rounding mode specified by the instruction. We implement this similarly to the Neon equivalents, by passing the required rounding mode as an extra integer parameter to the helper functions.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
2ec0dcf0 |
| 01-Sep-2021 |
Peter Maydell <peter.maydell@linaro.org> |
target/arm: Implement MVE VCVT between fp and integer
Implement the MVE "VCVT (between floating-point and integer)" insn.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richar
target/arm: Implement MVE VCVT between fp and integer
Implement the MVE "VCVT (between floating-point and integer)" insn.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|