On 07/04/2017 09:14 AM, Peter Maydell wrote:
On 4 July 2017 at 19:59, Lluís Vilanova <vilan...@ac.upc.edu> wrote:
Richard Henderson writes:
Any reason not to stuff the cpu pointer into the DisasContextBase instead of
passing it around separately?

None, really. I'll move it from DisasContext (in targets where it's present)
into DisasContextBase, and use that one everywhere.

I kind of like not having CPUState* in DisasContext, because
it enforces the rule that you can't read from fields of
it inside the target translate.c code without jumping through
a hoop (ie copying the info from CPUState->foo to
DisasContext->foo). That then acts as a useful flag in code
review (or when writing the code) to confirm that foo really
is constant for the life of the simulation (or to recommend
using a TB flag instead).

I don't see how the spelling "cpu" vs "dc->cpu" really affects that.

More practically, I don't see that "cpu" will actually be used by most of those hooks. But because of things like cpu->some_target_feature, it's kind of hard to predict.


r~

Reply via email to