unicorn/qemu/target-sparc
Richard Henderson 00fc847229
target-sparc: Allow 4-byte alignment on fp mem ops
The cpu is allowed to require stricter alignment on these 8- and 16-byte
operations, and the OS is required to fix up the accesses as necessary,
so the previous code was not wrong.

However, we can easily handle this misalignment for all direct 8-byte
operations and for direct 16-byte loads.

We must retain 16-byte alignment for 16-byte stores, so that we don't have
to probe for writability of a second page before performing the first of
two 8-byte stores. We also retain 8-byte alignment for no-fault loads,
since they are rare and it's not worth extending the helpers for this.

Backports commit cb21b4da6cca1bb4e3f5fefb698fb9e4d00c8f66 from qemu
2018-03-01 08:29:11 -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: Add MMU_PHYS_IDX 2018-02-28 12:24:17 -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: Implement ldqf and stqf inline 2018-03-01 08:20:36 -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: Implement ldqf and stqf inline 2018-03-01 08:20:36 -05:00
Makefile.objs cleanup Sparc unused code 2017-01-23 12:34:00 +08:00
mmu_helper.c target-sparc: Add MMU_PHYS_IDX 2018-02-28 12:24:17 -05:00
TODO import 2015-08-21 15:04:50 +08:00
translate.c target-sparc: Allow 4-byte alignment on fp mem ops 2018-03-01 08:29:11 -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