qemu/target/s390x
David Hildenbrand 80a7b75949 s390x/tcg: Don't model FP registers as globals
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 floating point
registers as globals anymore. This is then 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
in2_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.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20190204154406.16122-1-david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2019-02-04 18:32:17 +01:00
..
arch_dump.c compiler: add a sizeof_field() macro 2018-06-27 13:01:40 +01:00
cc_helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
cpu_features_def.h s390x/cpumodel: Set up CPU model for AP device support 2018-10-12 11:32:18 +02:00
cpu_features.c s390x/cpumodel: Set up CPU model for AP device support 2018-10-12 11:32:18 +02:00
cpu_features.h s390x/cpumodel: enum type S390FeatGroup now gets generated 2018-08-20 14:18:49 +02:00
cpu_models.c s390x/cpumodel: Set up CPU model for AP device support 2018-10-12 11:32:18 +02:00
cpu_models.h s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu-qom.h target/s390x: change CPU type name to "s390x-cpu" 2017-10-30 08:56:28 +01:00
cpu.c s390x/tcg: always enable AFP for linux-user 2018-10-09 10:34:01 +01:00
cpu.h target/s390x: define TCG_GUEST_DEFAULT_MO for MTTCG 2019-02-04 13:47:50 +01:00
crypto_helper.c s390x/tcg: introduce and use s390_program_interrupt() 2017-12-14 17:56:54 +01:00
diag.c s390x: Return specification exception for unimplemented diag 308 subcodes 2019-01-18 11:52:00 +01:00
excp_helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
fpu_helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
gdbstub.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
gen-features.c s390x/cpumodel: Set up CPU model for AP device support 2018-10-12 11:32:18 +02:00
helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
helper.h s390x/tcg: factor out and fix DATA exception injection 2018-10-04 10:32:39 +02:00
insn-data.def s390x/tcg: Don't model FP registers as globals 2019-02-04 18:32:17 +01:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
internal.h s390x/tcg: properly implement the TOD 2018-07-02 10:37:38 +02:00
interrupt.c s390x: move tcg_s390_program_interrupt() into TCG code and mark it noreturn 2018-10-04 10:32:39 +02:00
ioinst.c s390x: handle exceptions during s390_cpu_virt_mem_rw() correctly (TCG) 2017-12-14 17:56:54 +01:00
kvm_s390x.h s390x/tod: factor out TOD into separate device 2018-07-02 10:37:38 +02:00
kvm-stub.c s390x/kvm: pass values instead of pointers to kvm_s390_set_clock_*() 2018-07-02 10:37:38 +02:00
kvm.c s390x: remove direct reference to mem_path global from s390x code 2019-02-04 13:47:50 +01:00
machine.c s390x/kvm: add etoken facility 2018-08-20 14:18:49 +02:00
Makefile.objs s390x/tcg: rearm the CKC timer during migration 2018-07-02 10:37:38 +02:00
mem_helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
misc_helper.c target/s390x: Fix LGPL version in the file header comments 2019-01-30 11:04:02 +01:00
mmu_helper.c Make address_space_access_valid() take a MemTxAttrs argument 2018-05-31 16:32:35 +01:00
sigp.c Make address_space_access_valid() take a MemTxAttrs argument 2018-05-31 16:32:35 +01:00
tcg_s390x.h s390x/tcg: factor out and fix DATA exception injection 2018-10-04 10:32:39 +02:00
tcg-stub.c s390x/tcg: factor out and fix DATA exception injection 2018-10-04 10:32:39 +02:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c s390x/tcg: Don't model FP registers as globals 2019-02-04 18:32:17 +01:00