On 05/25/2017 04:12 PM, Aurelien Jarno wrote:
On 2017-05-24 15:08, Richard Henderson wrote:
While the previous patch is required for proper conformance,
the vast majority of target insns are MVC and XC for implementing
memmove and memset respectively. The next most common are CLC,
TR, and SVC.
Implementing these (and a few others for which we already have
an implementation) directly is faster than going through full
translation to a TB.
Signed-off-by: Richard Henderson <r...@twiddle.net>
---
target/s390x/mem_helper.c | 66 ++++++++++++++++++++++++++++++++++++-----------
1 file changed, 51 insertions(+), 15 deletions(-)
I have mixed feelings about this patch. On one side it is correct. On
the other side, I don't know if it really worth it. With the goto_ptr
optimization, it can be executed quite fast once it has been translated
once.
The thing is, I can't identify these being reused at all. The only case for
which that would even seem to make sense is memcpy/memset that happens to use
the same size. But even then doing the hashing to look up the block is more
than the decoding required to run the helper directly.
r~