On 04.02.19 14:27, Richard Henderson wrote: > On 1/31/19 2:37 PM, David Hildenbrand wrote: >> As floating point registers overlay some vector registers and we want >> to make use of the general tcg_gvec infrastructure that assumes vectors >> are not stored in globals but in memory, don't model flaoting point >> registers as globals anymore. This is than similar to how arm handles >> it. >> >> Reading/writing a floating point register means reading/writing memory now. >> >> Break up ugly in2_x2() handling that modifies both, in1 and in2 into >> in1_x2l and in2_x2h. This makes things more readable. Also, in1_x1() is >> ugly as it touches out/out2, get rid of that and use prep_x1() instead. >> >> As we are no longer able to use the original global variables for >> out/out2, we have to use new temporary variables and write from them to >> the target registers using wout_ helpers. >> >> E.g. an instruction that reads and writes x1 will use >> - prep_x1 to get the values into out/out2 >> - wout_x1 to write the values from out/out2 >> This special handling is needed for x1 as it is often used along with >> other inputs, so in1/in2 is already used. >> >> Signed-off-by: David Hildenbrand <da...@redhat.com> >> --- >> target/s390x/insn-data.def | 150 ++++++++++++++++++------------------- >> target/s390x/translate.c | 133 +++++++++++++++++++------------- >> 2 files changed, 158 insertions(+), 125 deletions(-) > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
Thanks! I'll probably switch naming of in1_x2l and in2_x2h to in1_x2h and in2_x2l (will double check, but I guess this is the right thing to do - high double word always comes first, e.g. in memory). > > > r~ > -- Thanks, David / dhildenb