unicorn/qemu/target-sparc
Richard Henderson 9e60a8e432
target-sparc: Introduce cpu_raise_exception_ra
Several helpers call helper_raise_exception directly, which requires
in turn that their callers have performed save_state. The new function
allows a TCG return address to be passed in so that we can restore
PC + NPC + flags data from that.

This fixes a bug in the usage of helper_check_align, whose callers had
not been calling save_state. It fixes another bug in which the divide
helpers used GETPC at a level other than the direct callee from TCG.

This allows the translator to avoid save_state prior to SAVE, RESTORE,
and FLUSHW instructions.

Backports commit 2f9d35fc4006122bad33f9ae3e2e51d2263e98ee from qemu
2018-02-28 12:15:06 -05:00
..
asi.h target-sparc: Add UA2005 defines to asi.h 2018-02-25 17:32:46 -05:00
cc_helper.c sparc: Clean up includes 2018-02-19 00:52:41 -05:00
cpu-qom.h target-sparc: make cpu-qom.h not target specific 2018-02-24 01:00:56 -05:00
cpu.c sparc: Use g_memdup() instead of g_new0() + memcpy() 2018-02-25 23:19:44 -05:00
cpu.h target-sparc: Introduce cpu_raise_exception_ra 2018-02-28 12:15:06 -05:00
fop_helper.c target-sparc: Use cpu_loop_exit_restore from helper_check_ieee_exceptions 2018-02-25 19:12:36 -05:00
helper.c target-sparc: Introduce cpu_raise_exception_ra 2018-02-28 12:15:06 -05:00
helper.h target-sparc: Use explicit writes to cpu_fsr 2018-02-25 18:55:07 -05:00
int32_helper.c sparc: Clean up includes 2018-02-19 00:52:41 -05:00
int64_helper.c target-sparc: fix Trap Based Address Register behavior for sparc64 2018-02-23 13:39:59 -05:00
ldst_helper.c target-sparc: Introduce cpu_raise_exception_ra 2018-02-28 12:15:06 -05:00
Makefile.objs cleanup Sparc unused code 2017-01-23 12:34:00 +08:00
mmu_helper.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
TODO import 2015-08-21 15:04:50 +08:00
translate.c target-sparc: Introduce cpu_raise_exception_ra 2018-02-28 12:15:06 -05:00
unicorn.c qemu-common: push cpu.h inclusion out of qemu-common.h 2018-02-24 01:50:56 -05:00
unicorn.h New feature: registers can be bulk saved/restored in an opaque blob 2016-08-20 04:14:07 -07:00
unicorn64.c qemu-common: push cpu.h inclusion out of qemu-common.h 2018-02-24 01:50:56 -05:00
vis_helper.c sparc: Clean up includes 2018-02-19 00:52:41 -05:00
win_helper.c target-sparc: Introduce cpu_raise_exception_ra 2018-02-28 12:15:06 -05:00