Help upstream with AREG0 removal
QEMU currently has a global register which stores a pointer to the current CPU state, which is used in both TCG generated code and some helper functions. There's been a recent decision to try to move towards getting rid of this global. We should put in the work on the ARM front-end.
The justification is that this will force helper functions to be more explicit about when they mess with CPU state, which means TCG can do better optimisation because it doesn't have to be pessimistic; however the chances are that it won't be an immediate win (it might even be a short-term performance loss) so 'qemu improvements' seems a better fit than 'speed improvements'.
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- Low
- Drafter:
- Peter Maydell
- Direction:
- Needs approval
- Assignee:
- Peter Maydell
- Definition:
- Approved
- Series goal:
- Accepted for trunk
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Michael Hope
- Completed by
- Peter Maydell
Related branches
Related bugs
Sprints
Whiteboard
Marking this as implemented, because upstream have now completed the work of getting rid of the AREG0 fixed-register global.
Work Items
Work items:
Redo and resubmit "FPSCR flags" patchset not to move functions to op_helper.c: DONE
Write and submit patchset reverting '*_helper.c have access to global env' change: DONE
Write and submit patchset which moves things out of op_helper.c where possible: TODO
Handle issues raised in review: TODO
Dependency tree
* Blueprints in grey have been implemented.