qemu-patch-raspberry4/target/ppc
Paul A. Clarke 31eb7dddac ppc: Add support for 'mffsl' instruction
ISA 3.0B added a set of Floating-Point Status and Control Register (FPSCR)
instructions: mffsce, mffscdrn, mffscdrni, mffscrn, mffscrni, mffsl.
This patch adds support for 'mffsl'.

'mffsl' is identical to 'mffs', except it only returns mode, status, and enable
bits from the FPSCR.

On CPUs without support for 'mffsl' (below ISA 3.0), the 'mffsl' instruction
will execute identically to 'mffs'.

Note: I renamed FPSCR_RN to FPSCR_RN0 so I could create an FPSCR_RN mask which
is both bits of the FPSCR rounding mode, as defined in the ISA.

I also fixed a typo in the definition of FPSCR_FR.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>

v4:
- nit: added some braces to resolve a checkpatch complaint.

v3:
- Changed tcg_gen_and_i64 to tcg_gen_andi_i64, eliminating the need for a
  temporary, per review from Richard Henderson.

v2:
- I found that I copied too much of the 'mffs' implementation.
  The 'Rc' condition code bits are not needed for 'mffsl'.  Removed.
- I now free the (renamed) 'tmask' temporary.
- I now bail early for older ISA to the original 'mffs' implementation.

Message-Id: <1565982203-11048-1-git-send-email-pc@us.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-08-21 17:17:39 +10:00
..
translate ppc: Add support for 'mffsl' instruction 2019-08-21 17:17:39 +10:00
arch_dump.c target/ppc: Add helper_mfvscr 2019-02-18 11:00:44 +11:00
compat.c target/ppc: Allow cpu compatiblity checks based on type, not instance 2018-06-21 21:22:53 +10:00
cpu-models.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
cpu-models.h target/ppc: Style fixes for ppc-models.[ch] 2019-04-26 10:41:24 +10:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h migration: Do not re-read the clock on pre_save in case of paused guest 2019-08-21 17:17:11 +10:00
cpu.c target/ppc: support for 32-bit carry and overflow 2017-03-01 11:23:39 +11:00
cpu.h ppc: Add support for 'mffsl' instruction 2019-08-21 17:17:39 +10:00
dfp_helper.c target/ppc: Style fixes for dfp_helper.c 2019-04-26 10:42:38 +10:00
excp_helper.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
fpu_helper.c ppc: Add support for 'mffsl' instruction 2019-08-21 17:17:39 +10:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
helper.h target/ppc: Optimize emulation of vclzw instruction 2019-08-21 17:17:11 +10:00
helper_regs.h target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
int_helper.c target/ppc: Optimize emulation of vclzw instruction 2019-08-21 17:17:11 +10:00
internal.h target/ppc: remove getVSR()/putVSR() from int_helper.c 2019-07-02 09:43:58 +10:00
kvm-stub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
kvm.c ppc: remove idle_timer logic 2019-08-21 17:17:39 +10:00
kvm_ppc.h target/ppc/machine: Add kvmppc_pvr_workaround_required() stub 2019-07-02 09:43:58 +10:00
machine.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
Makefile.objs build: remove CONFIG_LIBDECNUMBER 2017-10-16 18:03:52 +02:00
mem_helper.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
mfrom_table.inc.c target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c 2019-04-26 10:42:38 +10:00
mfrom_table_gen.c target/ppc: Style fixes for mfrom_table.inc.c & mfrom_table_gen.c 2019-04-26 10:42:38 +10:00
misc_helper.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
mmu-book3s-v3.c target/ppc: Support for POWER9 native hash 2019-02-26 09:21:25 +11:00
mmu-book3s-v3.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
mmu-hash32.c ppc/hash32: Rework R and C bit updates 2019-04-26 11:37:57 +10:00
mmu-hash32.h target/ppc: Manage external HPT via virtual hypervisor 2017-03-01 11:23:39 +11:00
mmu-hash64.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
mmu-hash64.h ppc/hash64: Rework R and C bit updates 2019-04-26 11:37:57 +10:00
mmu-radix64.c target/ppc: Don't check UPRT in radix mode when in HV real mode 2019-04-26 11:37:57 +10:00
mmu-radix64.h target/ppc: Rename PATB/PATBE -> PATE 2019-02-26 09:21:25 +11:00
mmu_helper.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
monitor.c hmp: Move hmp.h to include/monitor/ 2019-07-02 07:19:45 +02:00
timebase_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
trace-events target/ppc/kvm: Fix trace typo 2019-05-29 11:39:44 +10:00
translate.c target/ppc: move opcode decode tables to PowerPCCPU 2019-08-21 17:17:11 +10:00
translate_init.inc.c target/ppc: Add Directed Privileged Door-bell Exception State (DPDES) SPR 2019-08-21 17:17:39 +10:00
user_only_helper.c target/ppc: Convert to CPUClass::tlb_fill 2019-05-10 11:12:50 -07:00