d84ca804 | 23-Feb-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Distinguish RIE formats
There are multiple variations, with different fields.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro
tcg/s390x: Distinguish RIE formats
There are multiple variations, with different fields.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
1dd06b1a | 23-Feb-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Distinguish RRF-a and RRF-c formats
One has 3 register arguments; the other has 2 plus an m3 field.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <ri
tcg/s390x: Distinguish RRF-a and RRF-c formats
One has 3 register arguments; the other has 2 plus an m3 field.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
1b74cf6e | 29-Nov-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Use LARL+AGHI for odd addresses
Add one instead of dropping odd addresses to the constant pool.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richar
tcg/s390x: Use LARL+AGHI for odd addresses
Add one instead of dropping odd addresses to the constant pool.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
238da1c9 | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Remove DISTINCT_OPERANDS facility check
The distinct-operands facility is bundled into facility 45, along with load-on-condition. We are checking this at startup. Remove the a0 == a1 che
tcg/s390x: Remove DISTINCT_OPERANDS facility check
The distinct-operands facility is bundled into facility 45, along with load-on-condition. We are checking this at startup. Remove the a0 == a1 checks for 64-bit sub, and, or, xor, as there is no space savings for avoiding the distinct-operands insn.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
e62d5752 | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Remove FAST_BCR_SER facility check
The fast-bcr-serialization facility is bundled into facility 45, along with load-on-condition. We are checking this at startup.
Reviewed-by: Ilya Leos
tcg/s390x: Remove FAST_BCR_SER facility check
The fast-bcr-serialization facility is bundled into facility 45, along with load-on-condition. We are checking this at startup.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
c68d5b7a | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Check for load-on-condition facility at startup
The general-instruction-extension facility was introduced in z196, which itself was end-of-life in 2021. In addition, z196 is the minimum
tcg/s390x: Check for load-on-condition facility at startup
The general-instruction-extension facility was introduced in z196, which itself was end-of-life in 2021. In addition, z196 is the minimum CPU supported by our set of supported operating systems: RHEL 7 (z196), SLES 12 (z196) and Ubuntu 16.04 (zEC12).
Check for facility number 45, which will be the consilidated check for several facilities.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
9c3bfb79 | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Check for general-instruction-extension facility at startup
The general-instruction-extension facility was introduced in z10, which itself was end-of-life in 2019.
Reviewed-by: Ilya Leos
tcg/s390x: Check for general-instruction-extension facility at startup
The general-instruction-extension facility was introduced in z10, which itself was end-of-life in 2019.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
3e25f7da | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Check for extended-immediate facility at startup
The extended-immediate facility was introduced in z9-109, which itself was end-of-life in 2017.
Reviewed-by: Ilya Leoshkevich <iii@linux.
tcg/s390x: Check for extended-immediate facility at startup
The extended-immediate facility was introduced in z9-109, which itself was end-of-life in 2017.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
761ea522 | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Check for long-displacement facility at startup
We are already assuming the existance of long-displacement, but were not being explicit about it. This has been present since z990.
Revie
tcg/s390x: Check for long-displacement facility at startup
We are already assuming the existance of long-displacement, but were not being explicit about it. This has been present since z990.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
0a3afe09 | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Remove USE_LONG_BRANCHES
The size of a compiled TB is limited by the uint16_t used by gen_insn_end_off[] -- there is no need for a 32-bit branch.
Reviewed-by: Ilya Leoshkevich <iii@linux
tcg/s390x: Remove USE_LONG_BRANCHES
The size of a compiled TB is limited by the uint16_t used by gen_insn_end_off[] -- there is no need for a 32-bit branch.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
6bd739ed | 07-Dec-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Always set TCG_TARGET_HAS_direct_jump
Since USE_REG_TB is removed, there is no need to load the target TB address into a register.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signe
tcg/s390x: Always set TCG_TARGET_HAS_direct_jump
Since USE_REG_TB is removed, there is no need to load the target TB address into a register.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
ccbecb44 | 29-Nov-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Remove TCG_REG_TB
This reverts 829e1376d940 ("tcg/s390: Introduce TCG_REG_TB"), and several follow-up patches. The primary motivation is to reduce the less-tested code paths, pre-z10. S
tcg/s390x: Remove TCG_REG_TB
This reverts 829e1376d940 ("tcg/s390: Introduce TCG_REG_TB"), and several follow-up patches. The primary motivation is to reduce the less-tested code paths, pre-z10. Secondarily, this allows the unconditional use of TCG_TARGET_HAS_direct_jump, which might be more important for performance than any slight increase in code size.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- v4: Do not simplify tgen_ori, tgen_xori.
show more ...
|
eb8b0224 | 16-Oct-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg: Replace TCG_TARGET_EXTEND_ARGS with TCG_TARGET_CALL_ARG_I32
For 64-bit hosts that had TCG_TARGET_EXTEND_ARGS, set TCG_TARGET_CALL_ARG_I32 to TCG_CALL_ARG_EXTEND. Otherwise, use TCG_CALL_ARG_NOR
tcg: Replace TCG_TARGET_EXTEND_ARGS with TCG_TARGET_CALL_ARG_I32
For 64-bit hosts that had TCG_TARGET_EXTEND_ARGS, set TCG_TARGET_CALL_ARG_I32 to TCG_CALL_ARG_EXTEND. Otherwise, use TCG_CALL_ARG_NORMAL.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
6e591a85 | 02-Mar-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Fix tcg_out_dup_vec vs general registers
We copied the data from the general register input to the vector register output, but have not yet replicated it. We intended to fall through into
tcg/s390x: Fix tcg_out_dup_vec vs general registers
We copied the data from the general register input to the vector register output, but have not yet replicated it. We intended to fall through into the vector-vector case, but failed to redirect the input register.
This is caught by an assertion failure in tcg_out_insn_VRIc, which diagnosed the incorrect register class.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
6e5f9fb7 | 02-Mar-2022 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Fix INDEX_op_bitsel_vec vs VSEL
The operands are output in the wrong order: the tcg selector argument is first, whereas the s390x selector argument is last.
Tested-by: Thomas Huth <thuth
tcg/s390x: Fix INDEX_op_bitsel_vec vs VSEL
The operands are output in the wrong order: the tcg selector argument is first, whereas the s390x selector argument is last.
Tested-by: Thomas Huth <thuth@redhat.com> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/898 Fixes: 9bca986df88 ("tcg/s390x: Implement TCG_TARGET_HAS_bitsel_vec") Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
21eab5bf | 17-Dec-2021 |
Richard Henderson <richard.henderson@linaro.org> |
tcg/s390x: Implement vector NAND, NOR, EQV
Tested-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Sig
tcg/s390x: Implement vector NAND, NOR, EQV
Tested-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|