Help upstream with AREG0 removal

Registered by Peter Maydell

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

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.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.