Merge existing correctness fixes
Gather the various ARM-related qemu code-correctness fixes, test and review them and submit them upstream.
Sources of these fixes:
* the qemu-maemo tree
* possibly other trees like android (to investigate)
* upstream's mailing list
* patches written to fix problems found by our testing
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- High
- Drafter:
- Peter Maydell
- Direction:
- Needs approval
- Assignee:
- Peter Maydell
- Definition:
- Approved
- Series goal:
- Accepted for 11.05
- Implementation:
- Implemented
- Milestone target:
- 11.05-final
- Started by
- Michael Hope
- Completed by
- Peter Maydell
Related branches
Related bugs
Sprints
Whiteboard
Some work items have prefixes:
meego - patches from meego tree
samsung - ditto, samsung platform emulator
neon-list - issues raised by internal ARM users, mostly neon
valgrind - issues found by running tests from valgrind's source tree
Note that items here are marked 'DONE' when a patch is submitted upstream, although it may then take up to a few weeks for it to actually be committed to qemu git. The queue of pending patches is tracked at https:/
A few items removed from this blueprint:
* meego - Cortex-A8r2 support -- this is really only (maybe) needed for omap3 and will be considered under omap3 upstreaming
* meego - trustzone -- this is a missing feature, not a correctness issue; the plan is to do a proper implementation under its own blueprint next cycle
* VCVT exception flags is postponed because it is tricky (requires fixing softfloat bugs) and not very important
Work Items
Work items:
compile list of non-upstreamed ARM correctness fixes in various qemu trees: DONE
identify best git workflow for linaro qemu: DONE
check linaro patch handling policy (x-post to linaro-dev? review?): DONE
set up a 'linaro qemu' tree to track "upstream + ARM goodness": DONE
fix & test user-mode ldrexd/strexd: DONE
take BKPT-vs-SMC fix from list: DONE
clean up and post VCVT patchset: DONE
clean up and post VFP-in-
nak the mailing list patch about semihosting stderr? : DONE
ldrexd may have atomicity issues in user-mode: DONE
meego - break up the "lots of ARM TCG changes" commit: DONE
meego - fix vqshl/vqshlu: DONE
meego - fix vrsqrts: DONE
meego - fix vshll: DONE
meego - vifx vqdmlsl: DONE
meego - implement flush-to-zero: DONE
meego - implement vmull.p8: DONE
neon-list - UNZIP wrong decoding: DONE
neon-list - narrow sat signed to unsigned not taken into account: DONE
neon-list - missing VSLI: DONE
neon-list - missing polynomial VMULL: DONE
samsung - implement PLI (as a nop, for v7 only): DONE
samsung - interrupt-
review and test CL's v3 shift patchset: DONE
check for remaining shift fixes in meego tree: DONE
rework VZIP/VUZP patch which failed review: DONE
meego - neon_vldst helper patch: DONE
meego - fix vld1 single elt to all lanes: DONE
meego - temp leak patches: DONE
meego - test and upstream UNDEF handling patches: DONE
cp15 changes from maemo tree (?already posted upstream once by Matt?): DONE
cp15 debug reg patch: add debug status register, upstream: DONE
thumb load/store decoding - review bogus "case 8" code: DONE
thumb load/store decoding - should UNDEF on P=W=U=0: DONE
initrd loadaddr changes from maemo tree (cf list discussion previously): DONE
investigate, ack/nak fix suggestion for qemu bug 656285 SYS_HEAPINFO: DONE
neon-list - wrong register in VDUP: DONE
neon-list - missing handling of VLD1/VST1 with size 3: DONE
neon-list - VDUP not taking into account Q field: DONE
neon-list - fix narrow saturation for negative input: DONE
neon-list - fix handling of FP exception flags: DONE
neon-list - fix FP exception flags for VCVT: POSTPONED
neon-list - special casing of NaN->0 for float to int isn't setting IOC: DONE
neon-list - ARM should use float_tininess_
valgrind - (neon64,neon128) vmax,vmin NaN handling: DONE
valgrind - (neon64,neon128) vrecps NaN handling: DONE
valgrind - (neon64,neon128) vcgt,vcge,
valgrind - (neon64,neon128) vceq,vcgt,vcle comparisons with 1 and const-0: DONE
valgrind - (neon64) vld1 bugs: DONE
valgrind - (v6intThumb) orns, mvns carry bit inverted: DONE
valgrind - (v6media) sadd16,
valgrind - (v6media) sasx GE bits wrong: DONE
valgrind - (v6media) smuad,smuadx,
investigate Android qemu git tree for any missing fixes: DONE
VABAL - don't overflow for s32 case: DONE
Dependency tree
* Blueprints in grey have been implemented.