2730df91 | 09-Jul-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Use set/clear_helper_retaddr in mem_helper.c
Avoid a race condition with munmap in another thread. For access_memset and access_memmove, manage the value within the helper. For uses o
target/s390x: Use set/clear_helper_retaddr in mem_helper.c
Avoid a race condition with munmap in another thread. For access_memset and access_memmove, manage the value within the helper. For uses of access_{get,set}_byte, manage the value across the for loops.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
573b7783 | 09-Jul-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Use user_or_likely in access_memmove
Invert the conditional, indent the block, and use the macro that expands to true for user-only.
Reviewed-by: Peter Maydell <peter.maydell@linaro.o
target/s390x: Use user_or_likely in access_memmove
Invert the conditional, indent the block, and use the macro that expands to true for user-only.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
be0fcbc4 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Adjust check of noreturn in translate_one
If help_op is not set, ret == DISAS_NEXT. Shift the test up from surrounding help_wout, help_cout to skipping to out, as we do elsewhere in th
target/s390x: Adjust check of noreturn in translate_one
If help_op is not set, ret == DISAS_NEXT. Shift the test up from surrounding help_wout, help_cout to skipping to out, as we do elsewhere in the function.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-14-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
a47d08ee | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Simplify per_ifetch, per_check_exception
Set per_address and ilen in per_ifetch; this is valid for all PER exceptions and will last until the end of the instruction. Therefore we don'
target/s390x: Simplify per_ifetch, per_check_exception
Set per_address and ilen in per_ifetch; this is valid for all PER exceptions and will last until the end of the instruction. Therefore we don't need to give the same data to per_check_exception.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-13-richard.henderson@linaro.org> [thuth: Silence checkpatch.pl errors] Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
31b2d4a1 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Raise exception from per_store_real
At this point the instruction is complete and there's nothing left to do but raise the exception. With this change we need not make two helper call
target/s390x: Raise exception from per_store_real
At this point the instruction is complete and there's nothing left to do but raise the exception. With this change we need not make two helper calls for this event.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-11-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
53313396 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Raise exception from helper_per_branch
Drop from argument, since gbea has always been updated with this address. Add ilen argument for setting int_pgm_ilen. Use update_cc_op before ca
target/s390x: Raise exception from helper_per_branch
Drop from argument, since gbea has always been updated with this address. Add ilen argument for setting int_pgm_ilen. Use update_cc_op before calling per_branch.
By raising the exception here, we need not call per_check_exception later, which means we can clean up the normal non-exception branch path.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-10-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
619f6891 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Split per_breaking_event from per_branch_*
The breaking-event-address register is updated regardless of PER being enabled.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off
target/s390x: Split per_breaking_event from per_branch_*
The breaking-event-address register is updated regardless of PER being enabled.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-9-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
e6405455 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Simplify help_branch
Always use a tcg branch, instead of movcond. The movcond was not a bad idea before PER was added, but since then we have either 2 or 3 actions to perform on each
target/s390x: Simplify help_branch
Always use a tcg branch, instead of movcond. The movcond was not a bad idea before PER was added, but since then we have either 2 or 3 actions to perform on each leg of the branch, and multiple movcond is inefficient.
Reorder the taken branch to be fallthrough of the tcg branch.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-8-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
9bbbcf5d | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Introduce help_goto_indirect
Add a small helper to handle unconditional indirect jumps.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Ilya Leoshkevich <iii@linu
target/s390x: Introduce help_goto_indirect
Add a small helper to handle unconditional indirect jumps.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-7-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
a90e3195 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Disable conditional branch-to-next for PER
For PER, we require a conditional call to helper_per_branch for the conditional branch. Fold the remaining optimization into a call to helpe
target/s390x: Disable conditional branch-to-next for PER
For PER, we require a conditional call to helper_per_branch for the conditional branch. Fold the remaining optimization into a call to helper_goto_direct, which will take care of the remaining gbea adjustment.
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20240502054417.234340-6-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
62613ca0 | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Record separate PER bits in TB flags
Record successful-branching, instruction-fetching, and store-using-real-address. The other PER bits are not used during translation. Having check
target/s390x: Record separate PER bits in TB flags
Record successful-branching, instruction-fetching, and store-using-real-address. The other PER bits are not used during translation. Having checked these at translation time, we can remove runtime tests from the helpers.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-ID: <20240502054417.234340-5-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
51a1718b | 02-May-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Update CR9 bits
Update from the PoO 14th edition.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Ilya Leoshke
target/s390x: Update CR9 bits
Update from the PoO 14th edition.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-ID: <20240502054417.234340-4-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
show more ...
|
171ce939 | 03-Apr-2024 |
Richard Henderson <richard.henderson@linaro.org> |
target/s390x: Fix translator_fake_ld length
The ilen value extracted from ex_value is the length of the EXECUTE instruction itself, and so is the increment to the pc. However, the length of the synt
target/s390x: Fix translator_fake_ld length
The ilen value extracted from ex_value is the length of the EXECUTE instruction itself, and so is the increment to the pc. However, the length of the synthetic insn is located in the opcode like all other instructions.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
4c6163ea | 03-Apr-2024 |
Richard Henderson <richard.henderson@linaro.org> |
accel/tcg: Introduce translator_fake_ld
Replace translator_fake_ldb, which required multiple calls, with translator_fake_ld, which can take all data at once.
Reviewed-by: Philippe Mathieu-Daudé <ph
accel/tcg: Introduce translator_fake_ld
Replace translator_fake_ldb, which required multiple calls, with translator_fake_ld, which can take all data at once.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|